Java entrySetのMap.Entry

1666 ワード

JavaのHashMapはキー値対構造格納データである.JavaがHashMapを巡るとき、開発者はKeyキーに関心を持つ必要がないか、開発者がKeyキーが何なのか全然知らないので、value値を取得したり、value値を変更したりしたい場合があります.それはJavaのMap.Entryを使って実現できます.
1つのHashMapに3対の値が格納されていると仮定します:<123,1>  , <456,2>  ,  <789,3>.開発者は知りたくなくてもkeyキー値を知らないかもしれませんが、HashMapに格納したいvalue値だけです.
1なら3に変えます.
2なら4に変えます.
3なら5に変えます.
この場合、keyに基づいてvalue値を取得して置き換える必要はありません.この場合、valueを遍歴して置き換えるだけです.たとえば、次のようにします.
    private void test() {
        HashMap map = new HashMap();
        map.put(123, 1);
        map.put(456, 2);
        map.put(789, 3);

        Set> sets = map.entrySet();

        Iterator> iterator = sets.iterator();
        while (iterator.hasNext()) {
            Map.Entry entry = iterator.next();

            //   key。
            //Object key = entry.getKey();

            Integer integer = entry.getValue();

            if (integer == 1) {
                entry.setValue(4);
            }

            if (integer == 2) {
                entry.setValue(5);
            }

            if (integer == 3) {
                entry.setValue(6);
            }
        }

        System.out.println(map.get(123) + "");
        System.out.println(map.get(456) + "");
        System.out.println(map.get(789) + "");
    }

出力:
2018-12-14 19:47:03.131 24838-24838/zhangphil.book I/System.out: 4
2018-12-14 19:47:03.131 24838-24838/zhangphil.book I/System.out: 5
2018-12-14 19:47:03.131 24838-24838/zhangphil.book I/System.out: 6