日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Java中的list、set、map区别

發布時間:2023/12/10 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中的list、set、map区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

List 有序,可重復

ArrayList
優點: 底層數據結構是數組,查詢快,增刪慢。
缺點: 線程不安全,效率高
Vector
優點: 底層數據結構是數組,查詢快,增刪慢。
缺點: 線程安全,效率低
LinkedList
優點: 底層數據結構是鏈表,查詢慢,增刪快。
缺點: 線程不安全,效率高

Set 無序,唯一

HashSet
底層數據結構是哈希表。(無序,唯一)
如何來保證元素唯一性?
1.依賴兩個方法:hashCode()和equals()

LinkedHashSet
底層數據結構是鏈表和哈希表。(FIFO插入有序,唯一)
1.由鏈表保證元素有序
2.由哈希表保證元素唯一

TreeSet
底層數據結構是紅黑樹。(唯一,有序)
1. 如何保證元素排序的呢?
自然排序
比較器排序
2.如何保證元素唯一性的呢?
根據比較的返回值是否是0來決定


Map接口有三個比較重要的實現類,分別是HashMap、TreeMap和HashTable。

TreeMap是有序的,HashMap和HashTable是無序的。
Hashtable是線程安全的效率較低 不允許null值,HashMap不是線程安全的效率較高允許null值(key和value都允許)。
?

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() 的定義進行排序的有序容器

List和Map的區別

List:是存儲單列數據的集合,存儲的數據是有序并且是可以重復的
Map:存儲雙列數據的集合,通過鍵值對存儲數據,存儲 的數據是無序的,Key值不能重復,value值可以重復

總結

以上是生活随笔為你收集整理的Java中的list、set、map区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。