Java Mapのいくつかの遍歴方式


方法1 KeySetによる遍歴
    public void loopMapByKeySet() {
        Map testMap = new HashMap<>();
        testMap.put("testKey1", 1);
        testMap.put("testKey2", 2);
        testMap.put("testKey3", 3);
        for (String key : testMap.keySet()) {
            System.out.print("key : " + key + " , value : " + testMap.get(key));
        }
    }

この方式はコード論理がはっきりしているが,効率が低いという深刻な問題がある.
方法2 EntrySetのIteratorによる遍歴
    public void loopMapByIterator() {
        Map testMap = new HashMap<>();
        testMap.put("testKey1", 1);
        testMap.put("testKey2", 2);
        testMap.put("testKey3", 3);
        Iterator> iterator = testMap.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry entry = iterator.next();
            System.out.print("key : " + entry.getKey() + " , value : " + entry.getValue());
        }
    }


この方法は効率的ですが、Iteratorに詳しくない人には少し友好的ではありません.
方法3 EntrySetによる遍歴
    public void loopMapByEntrySet() {
        Map testMap = new HashMap<>();
        testMap.put("testKey1", 1);
        testMap.put("testKey2", 2);
        testMap.put("testKey3", 3);
        for (Map.Entry entry : testMap.entrySet()) {
            System.out.print("key : " + entry.getKey() + " , value : " + entry.getValue());
        }
    }


この方式の本質は方法と変わらないが、書き方を改善しただけで、効率が高いだけでなく、コードも簡潔で、読むのがもっと友好的だ.