首先我們應該清楚這個概念:這里的有序和無序不是指集合中的排序,而是是否按照元素添加的順序來存儲對象。
list是按照元素的添加順序來存儲對象的,因此是有序的。他的實現類ArrayList、LinkedList、Vector都是有序的。
Map是無序的,它的存儲結構是哈希表<key,value>鍵值對,map中插入元素是根據key計算出的哈希值來存儲元素的,因此他不是按照元素的添加順序來存儲對象的,所以Map是無序的。它的實現類有:HashMap、TableMap和TreeMap。
其中LinkedHashMap是有序的,hashMap用來保證存儲的值鍵值對,list用來保證插入的順序和存儲的順序一致。
Set是無序的,並且set中的元素不能重復。set的底層實現其實是Map,它是計算key的哈希值來確定元素在數組中的存放位置,所以是無序的,應為在Map中key的值不能重復,所以set中的元素不能重復。它的實現類有:haseSet、TreeSet。
其中LinkedHashSet是有序的,其中haseSet用來保證數據唯一,List用來保證插入的順序和存儲的順序一致。