ハッシュマップを反復処理して要素を削除する方法は?
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例外が発生します。