做网站开票是多少个点的票,短视频运营方案,手机网站设计教程,广州致峰网站建设在 Java 中操作 Map 时#xff0c;高效遍历和安全删除数据可以通过以下方式实现#xff1a; 一、遍历 Map 的 4 种高效方式
1. 传统迭代器#xff08;Iterator#xff09;
MapString, Integer map new HashMap();
map.put(key1, 5);
map.pu…在 Java 中操作 Map 时高效遍历和安全删除数据可以通过以下方式实现 一、遍历 Map 的 4 种高效方式
1. 传统迭代器Iterator
MapString, Integer map new HashMap();
map.put(key1, 5);
map.put(key2, 3);IteratorMap.EntryString, Integer iterator map.entrySet().iterator();
while (iterator.hasNext()) {Map.EntryString, Integer entry iterator.next();String key entry.getKey();Integer value entry.getValue();System.out.println(key : value);
}2. Java 8 forEach Lambda
map.forEach((key, value) - {System.out.println(key : value);
});3. 增强 for 循环遍历 EntrySet
for (Map.EntryString, Integer entry : map.entrySet()) {String key entry.getKey();Integer value entry.getValue();// ...
}4. Stream APIJava 8
map.entrySet().stream().filter(entry - entry.getValue() 3) // 过滤条件.forEach(entry - {System.out.println(entry.getKey();});二、安全删除 Map 中的数据
1. 遍历时删除
IteratorMap.EntryString, Integer iterator map.entrySet().iterator();
while (iterator.hasNext()) {Map.EntryString, Integer entry iterator.next();if (entry.getValue() 3) {iterator.remove();}
}2. Java 8 removeIf
map.entrySet().removeIf(entry - entry.getValue() 3);3. 直接删除已知 Key
map.remove(key1);三、关键注意事项 避免并发修改异常 遍历时直接调用 map.remove(key) 会导致 ConcurrentModificationException必须使用 Iterator.remove() 或 removeIf。 性能优化 对 HashMap优先遍历 entrySet()直接获取 Key-Value。对只读操作forEach 和 Stream 性能接近需过滤/删除时优先用 removeIf。 并发场景 多线程环境下使用 ConcurrentHashMap 并结合 Iterator.remove() 或原子操作。 四、完整示例代码
MapString, Integer map new HashMap(Map.of(key1, 5,key2, 3,key3, 2
));// 遍历并删除 value 3
map.entrySet().removeIf(entry - entry.getValue() 3);// 输出结果{key15, key23}
System.out.println(map);通过上述方法可以高效且安全地操作 Java 中的 Map 数据结构。