集合类
hashmap基于哈希表的map接口實現。查詢速度快。線程不安全。
底層:數組+鏈表
哈希沖突解決:
jdk1.7:位桶+鏈表
jdk1.8:位桶+鏈表+紅黑樹 當鏈表長度超過閾值(8)時,會將鏈表轉化為紅黑樹,減少查詢時間。
數組長度是不改變的,集合創建后長度是可以改變的。
集合分支體系
Collection ? ?? 以value形式存儲
?? list有序可重復?
arrayList ? 底層:動態數組? 1.5 ///? 特點:適合遍歷和輪訓,不適合插入和刪除 ///使用方法:無參 有參///常用方法:add remove get set size indexOf sublist、toArray
Vector ? ? ? 底層:arrayList的早期版本 擴容默認2倍///特點:線程同步(sync) 、安全性高、效率低
linkedlist
stack ? ? ? ? 底層:繼承了vector peek pop push?
set無序不可重復
hashset ?? 底層:hashmap? 16 0.75? ///通過set集合獲取迭代器 ///無重復的原則:默認比較的是地址,用equals方法來比較+hashcode()
Iterator<String> it=set.iterator();while(it.hasNext()){ String value=it.next;}? ? ? treeset ? ? 底層:treemap 本身有順序,按自然順序比,compareTo?
Queue
linkedlist 底層:雙向循環鏈表。同時實現了list和queue接口 修改性能較好
Map ? 以key-value形式存儲
key無序無重復 value無序可重復
hashmap ?? 結合了數組加鏈表的優勢。既想要查詢效率快,也想要增刪效率高。
Node<K,V> 初始大小:16? 擴容:16*0.75 ? 鏈表長度:8 超過后,? 紅黑樹? jdk1.8?
hashtable (加sync:效率低)
concurrentHashMap:并發操作 value值由volatile修飾
segment :繼承reentrantlock ? ?
treemap ? ?
?
轉載于:https://www.cnblogs.com/NeverGiveUp0/p/11123468.html
總結
- 上一篇: kubernetes实战篇之通过api-
- 下一篇: (18)打鸡儿教你Vue.js