散列值(散列數組下標)的算法,如: "...《java基礎知識點詳細總結3》由中大網校JAVA認證考試網發布。" />
Map
1 HashMap 新
2 Hashtable 舊 (1.2以前)
1 散列表 Map
散列表概念
1) 容量: 散列表中散列數組大小.
2) 散列運算: key->散列值(散列數組下標)的算法,
如: "mm".hashCode()->8
3) 散列桶: 散列值相同的元素的"線性集合"
4) 加載因子: 就是散列數組加載率, 一般小于75%性能比較理想
就是:元素數量/散列數組大小, 如: 7/10=70%
5) 散列查找: 根據Key計算散列值, 根據散列值(下標)找到
散列桶,在散列桶中順序比較Key, 如果一樣, 就返回value
6) 散列表中Key不同, Value可以重復
2 HashMap(關鍵字:值), 關鍵字key是唯一不重復的, 查找表
1) key可以是任何對象, Value可以任何對象,
2) key:value 成對的放置到集合中
3) 重復的key算一個, 重復添加是替換操作
4) 根據key的散列值計算散列表, 元素按照散列值(不可見)排序
5) 默認的容量: 16 默認加載因子(加載率) 0.75
6) 根據key檢索查找value值
7) 用于查找場合, 可以提高根據key查找效率
8) HashMap VS Hashtable
A HashMap 新, 非線程安全, 不檢查鎖, 快
B Hashtable 舊 (1.2以前) 線程安全, 檢查鎖, 慢一點
編輯推薦:
(責任編輯:fky)