ハッシュマップを反復処理して要素を削除する方法は?

Javaでは、迭代子を使用してHashMap内の要素を走査および削除することができます。以下は、HashMapを走査して要素を削除する方法を示すサンプルコードです。

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

public class Main {
    public static void main(String[] args) {
        // 创建一个HashMap
        Map<String, Integer> map = new HashMap<>();
        map.put("A", 1);
        map.put("B", 2);
        map.put("C", 3);
        map.put("D", 4);
        
        // 使用迭代器遍历并删除元素
        Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry<String, Integer> entry = iterator.next();
            if (entry.getKey().equals("A")) {
                iterator.remove(); // 删除元素
            }
        }
        
        // 输出删除元素后的HashMap
        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }
    }
}

上記のコードでは、entrySet()メソッドを使用してHashMap内のすべての要素を含むSetコレクションを取得し、イテレータを使用して繰り返し処理を行います。繰り返し処理中に削除する要素が見つかった場合、イテレータのremove()メソッドを使用してその要素を削除します。最後に、HashMapを再度繰り返し処理して残りの要素を出力します。

HashMapを反復処理する際にイテレーターを使用して削除操作を行うと安全ですが、通常のfor-eachループを使用して削除操作を行うと安全ではなく、ConcurrentModificationException例外が発生します。

bannerAds