Mapの要素を正しくパス削除

1962 ワード

Mapを巡る過程でmapは使えない.remove(key)を使用して要素を削除すると、反復器のremove()を使用することができる同時修正異常が発生します.反復器が指すcollectionから現在の反復要素を除去し、アクセス中の要素を削除する目的を達成します.
package com.cx.test;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        fun();
    }
    private static void fun() {
        Map map = new HashMap<>();
        map.put(1, " ");
        map.put(2, " ");
        System.out.println(" :" + map);
        Iterator> iterator = map.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry next = iterator.next();
            if (next.getKey() == 1) {
                iterator.remove();
            }
        }
        System.out.println(" :" + map);
    }
}

出力結果:
{1= , 2= }{2= }