List Set繼承Collection介面 Map不是
List可以存放重復元素 Set不可以 實作List介面的集合有:ArrayList、LinkedList、vector、Stack
ArrayList(執行緒不安全)和vector(執行緒安全)底層由陣列組成(都是有序非同步的集合)
LInkedList(執行緒不安全)底層由雙向鏈表組成
Set不可以存放重復元素 實作Set介面的集合由:TreeSet、HashSet、LinkedHashSet、EnumSet
TreeSet(非執行緒安全)由紅黑樹實作
HashSet(非執行緒安全)是查詢速度最快的集合,內部由HashCode實作
HashSet集合判斷兩個元素相等的標準應該是先判斷元素的hashcode(),如果不同則兩個元素不同;如果兩個元素的hashcode()相同,則再呼叫equals()進行比較,如果回傳true,則兩個元素相等,回傳false則不想等,
LinkedHashSet(非執行緒安全)性能比HashSet好,但是插入時性能稍微遜色于HashSet,
Map介面不繼承Collection 是由鍵值對組成(key-value) 實作map的集合有:HashMap、TreeMap、WeakHashMap、HashTable,
HaspMap (非執行緒安全)是非同步的 底層由陣列+鏈表+紅黑樹實作
TreeMap (非執行緒安全)底層由紅黑樹實作
WeakHashMap (非執行緒安全)使用的是弱參考,適用于快取
HashTable 是同步的 (執行緒安全)(因為通過synchronized鎖) 繼承自Dictionary類
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/179213.html
標籤:其他
