ap 集合初始化時,指定集合初始值大小。說明:hashmap 使用 hashmap(int initialcapacity) 初始化。
正例:initialcapacity = (需要儲存的元素個數 / 負載因子) + 1。注意負載因子(即 loade***ctor)預設為 0.75,如果暫時無法確定初始值大小,請設定為 16(即預設值)。
反例:hashmap 需要放置 1024 個元素,由於沒有設定容量初始大小,隨著元素不斷增加,容量 7 次被迫擴大,resize 需要重建 hash 表,嚴重影響效能。
/**** 測試類
*/
@org.junit.testpublic void testhashmap()
system.out.println("------------------獲取map種所有的value:map.values()--------------------------");
//遍歷所有的value
for (string value : map.values())
system.out.println("-------------------獲取鍵值對:map.entryset()-------------------------");
//取出對應的 key,value 鍵值對,容量大時推薦使用
for (map.entryentry : map.entryset())
system.out.println("--------------------- 通過 map.entryset使用iterator遍歷 key 和 value -----------------------");
iterator> iterator = map.entryset().iterator();
while (iterator.hasnext())
system.out.println("-------------------- map.foreach jdk1.8 新特性 ----------------------");
map.foreach((key, value) -> );
}推薦:使用 entryset 遍歷 map 類集合 kv,而不是 keyset 方式進行遍歷。說明: keyset 其實是遍歷了 2 次,一次是轉為 iterator 物件,另一次是從 hashmap 中取出key 所對應的 value。而 entryset 只是遍歷了一次就把 key 和 value 都放到了 entry 中,效率更高。
如果是 jdk8,使用 map.foreach 方法。
正例: values()返回的是 v 值集合,是乙個 list 集合物件; keyset()返回的是 k 值集合,是乙個 set 集合物件; entryset()返回的是 k-v 值組合集合
遍歷Map集合的4種方法
public static void main string args 第二種 system.out.println 通過map.entryset使用iterator遍歷key和value iterator it map.entryset iterator while it.hasnext 第三種 ...
Map遍歷的4種方法
一 通過map.keyset遍歷key和value,普遍使用,二次取值 定義乙個map集合 mapmap new hashmap 給map結合賦值 map.put k1 v1 map.put k2 v2 map.put k3 v3 map.put k4 v4 遍歷 for string key ma...
遍歷Map的4種方法
public static void main string args 第二種 system.out.println 通過map.entryset使用iterator遍歷key和value iterator it map.entryset iterator while it.hasnext 第三種 ...