Java中的list和set有什么區別


list與set方法的區別有:list可以允許重復對象和插入多個null值,而set不允許;list容器是有序的,而set容器是無序的等等

 

Java中的集合共包含三大類,它們分別是Set(集),List(列表)以及Map(映射)。它們都處在java.util中並且都為接口。它們各自都有各自的實現類。Set的實現類主要有HashSet和TreeSet,List的實現類主要有ArrayList。接下來將為大家介紹這兩大類之間的區別,具有一定的參考作用,希望對大家有所幫助。

【推薦課程:Java教程

List方法與set方法的區別

(1)重復對象

list方法可以允許重復的對象,而set方法不允許重復對象

(2)null元素

list可以插入多個null元素,而set只允許插入一個null元素

(3)容器是否有序

list是一個有序的容器,保持了每個元素的插入順序。即輸出順序就是輸入順序,而set方法是無序容器,無法保證每個元素的存儲順序,TreeSet通過 Comparator 或者 Comparable 維護了一個排序順序

(4)常用的實現類

list方法常用的實現類有ArrayList、LinkedList 和 Vector。其中ArrayList 最為流行,它提供了使用索引的隨意訪問,而LinkedList 則對於經常需要從 List 中添加或刪除元素的場合更為合適,Vector 表示底層數組,線程安全

Set方法中最流行的幾個實現類是 HashSet、LinkedHashSet 以及 TreeSet。最流行的是基於 HashMap實現的 HashSet;TreeSet 還實現了 SortedSet 接口,因此 TreeSet 是一個根據其 compare() 和compareTo() 的定義進行排序的有序容器


免責聲明!

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



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