java遍歷map的幾種方式


推薦幾種遍歷map的方式,有鍵名和鍵值都遍歷的,也有遍歷其中之一的,還有while遍歷的

public static void main(String[] args) {
        // 循環遍歷Map的4中方法
        Map<Integer, Integer> map = new HashMap<Integer, Integer>();
        map.put(1, 2);
        // 1. entrySet遍歷,在鍵和值都需要時使用(最常用)
        for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
            System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue());
        }
        // 2. 通過keySet或values來實現遍歷,性能略低於第一種方式
        // 遍歷map中的鍵
        for (Integer key : map.keySet()) {
            System.out.println("key = " + key);
        }
        // 遍歷map中的值
        for (Integer value : map.values()) {
            System.out.println("key = " + value);
        }
        // 3. 使用Iterator遍歷
        Iterator<Map.Entry<Integer, Integer>> it = map.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry<Integer, Integer> entry = it.next();
            System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue());
        }
 
        // 4. java8 Lambda
        // java8提供了Lambda表達式支持,語法看起來更簡潔,可以同時拿到key和value,
        // 不過,經測試,性能低於entrySet,所以更推薦用entrySet的方式
        map.forEach((key, value) -> {
            System.out.println(key + ":" + value);
        });
        
    }

如果只是獲取key,或者value,推薦使用keySet或者values方式;

如果同時需要key和value推薦使用entrySet;

如果需要在遍歷過程中刪除元素推薦使用Iterator;

如果需要在遍歷過程中增加元素,可以新建一個臨時map存放新增的元素,等遍歷完畢,再把臨時map放到原來的map中。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM