我是靠谱客的博主 专注学姐,最近开发中收集的这篇文章主要介绍Java HashMap遍历删除,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

map的迭代删除,和我们常见的list,set不太一样,不能直接获取Iteraotr对象,提供的删除方法也是单个的,根据key进行删除,如果我们有个需求,将map中满足某些条件的元素删除掉,要怎么做呢?

首先初始化一个HashMap

Map<String, Integer> map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
map.put("d", 4);

非常不优雅版本

List<String> removeKey = new ArrayList<>();
for (Map.Entry<String, Integer> e: map.entrySet()) {
if (e.getValue() % 2== 0) {
removeKey.add(e.getKey());
}
}
removeKey.forEach(map::remove);

正确姿势版

虽然Map没有迭代,但是它的entrySet有,所以我们可以通过它来实现遍历删除

Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
Map.Entry<String, Integer> entry;
while (iterator.hasNext()) {
entry = iterator.next();
if (entry.getValue() % 2 == 0) {
iterator.remove();
}
}
System.out.println(map);

jdk8+ 流方式

map.entrySet().removeIf(entry -> entry.getValue() % 2 == 0);

最后

以上就是专注学姐为你收集整理的Java HashMap遍历删除的全部内容,希望文章能够帮你解决Java HashMap遍历删除所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部