Map、Set、List是否有序


首先我們應該清楚這個概念:這里的有序和無序不是指集合中的排序,而是是否按照元素添加的順序來存儲對象。

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用來保證插入的順序和存儲的順序一致。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM