Java學習總結之HashMap的遍歷方式

1.使用lambda表達式,性能低於遍歷entrySet方式

Map<Integer, String> map = new HashMap<>();
        map.put(1, "張三");
        map.put(2, "李四");
        map.put(3, "王五");
        map.put(4, "趙六");
        //使用lambda表達式,性能低於遍歷entrySet方式
        map.forEach((key, value) ->{
            System.out.println("key-value:"+key +"-" + value);
        });

2.使用Iterator迭代器遍歷

Map<Integer, String> map = new HashMap<>();
map.put(1, "張三");
map.put(2, "李四");
map.put(3, "王五");
map.put(4, "趙六");
//4.1使用Iterator迭代器遍歷,泛型
Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator();
while(iterator.hasNext()){
    Map.Entry<Integer, String> entry = iterator.next();
    System.out.println("key-value:" + entry.getKey() + "-" 
    + entry.getValue());
}
System.out.println("----------------我是分割線-----------------");
//4.2使用Iterator迭代器遍歷,不使用泛型,需把object強轉爲Map.Entry
Iterator iterator2 = map.entrySet().iterator();
while (iterator2.hasNext()){
    Map.Entry entry = (Map.Entry)iterator2.next();
    System.out.println("key-value:" + entry.getKey() + "-" 
    + entry.getValue());
}

3.使用for循環遍歷keySet方式且僅遍歷鍵key,那麼效率高;同樣使用for循環遍歷values方式且僅遍歷值value,效率高

Map<Integer, String> map = new HashMap<>();
map.put(1, "張三");
map.put(2, "李四");
map.put(3, "王五");
map.put(4, "趙六");
//遍歷keySet,僅遍歷鍵key效率高
for(Integer key : map.keySet()){
    System.out.println("key:"+key);
}
//遍歷values,僅遍歷值value效率高
for(String value : map.values()){
    System.out.println("value:"+value);
}

4.使用for循環遍歷keySet方式,然後通過key找value,這種方式同時取得鍵和值效率比較低,因爲從鍵key取值value也是需要耗時的

Map<Integer, String> map = new HashMap<>();
        map.put(1, "張三");
        map.put(2, "李四");
        map.put(3, "王五");
        map.put(4, "趙六");
        //遍歷keySet方式,然後通過key找value
        for(Integer key : map.keySet()){
            String value = map.get(key);
            System.out.println("key-value:" + key +""+ value);
        }

5.使用for循環遍歷HashMap的entrySet,此種方式同時獲取鍵和值是最效率的

Map<Integer, String> map = new HashMap<>();
        map.put(1, "張三");
        map.put(2, "李四");
        map.put(3, "王五");
        map.put(4, "趙六");
        //遍歷entrySet方式
        for(Map.Entry entry : map.entrySet()){
            System.out.println("key-value:" + entry.getKey() +"-"
            + entry.getValue());
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章