JAVA中列表,集合之間的區別


整體來看List,Set,Map都是實現了Collection接口的接口。

  1. 重復性:
    • List允許存在重復的元素,也就是說List中可以在不影響現有元素的值及其索引的同時插入新的重復元素。
    • Set不允許存在重復的元素,Set集合都不允許插入重復元素。
    • Map是一種以鍵值對形式存儲元素的映射類型集合,對Map而言key(鍵)是唯一的,value(值)是可重復的。
  2. 空值性:
    • List允許任意數量的空值。
    • Set最多允許一個空值。
    • Map只允許出現一個空鍵,但允許任意數量的空值。
  3. 排序性:
    • List保持每個元素的插入順序。
    • Set中的元素都是無序的,但某些Set的實現類可以以某種順序對其中的元素進行排序。(PS:LinkedHashSet按照元素的插入順序進行排序。)
    • Map與Set一樣對元素驚醒無序存儲,但Map某些實現類也會對元素進行排序。(PS:TreeMap按照鍵對其中的元素進行升序排序,LinkedHashMap按照每個元素的插入順序進行排序)
  4. 實現類:
    • List:ArrayList、LinkedList等等。
    • Set:HashSet、LinkedHashSet、TreeSet、SortedSet等等。
    • Map:HashMap、TreeMap、WeakHashMap、LinkedMashMap、IdentityHashMap等等。
  5. 使用場景:
    • 如果需要時常根據元素的索引值進行查詢操作,那么List(ArrayList)是一種不錯的選擇。
    • 如果你的數據不允許重復的值存在,Set是比較適合的選擇。
    • 如果需要保留每個元素的插入順序,那么首選還是List集合。
    • 如果你的數據需要進行key-value映射,那么就用Map。

原文引用:JAVA教程


免責聲明!

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



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