使用Java从地图中删除元素

关于从Java中的Map删除元素的非常简短的文章。 我们将专注于删除多个元素,而忽略了您可以使用Map.remove删除单个元素的Map.remove

以下Map将用于此帖子:

Map<Integer, String> map = new HashMap<>();
map.put(1, "value 1");
map.put(2, "value 2");
map.put(3, "value 3");
map.put(4, "value 4");
map.put(5, "value 5");

有几种删除元素的方法。 您可以手动遍历代码并将其删除:

for(Iterator<Integer> iterator = map.keySet().iterator(); iterator.hasNext(); ) {Integer key = iterator.next();if(key != 1) {iterator.remove();}
}

这是您无需访问Java 8+即可执行的操作。 从Map删除元素时,需要Iterator来防止ConcurrentModificationException

如果您确实有权使用Java(8+)的较新版本,则可以从以下选项中进行选择:

// remove by value
map.values().removeIf(value -> !value.contains("1"));
// remove by key
map.keySet().removeIf(key -> key != 1);
// remove by entry / combination of key + value
map.entrySet().removeIf(entry -> entry.getKey() != 1);

removeIfCollection可用的方法。 是的, Map本身不是Collection ,也无权访问removeIf本身。 但是,通过使用: valueskeySetentrySet ,将返回Map内容的视图。 此视图实现Collection允许在其上调用removeIf

valueskeySetentrySet返回的内容非常重要。 以下是JavaDoc的values摘录:

 * Returns a { this map. Collection} view of the values contained in * Returns a { @link Collection} view of the values contained in map.  * The collection is backed by the map, so changes to the map are  * reflected in the collection, and vice-versa.  *  * The collection supports element removal, which removes the corresponding  * mapping from the map, via the { @code Iterator.remove}, * mapping from the map, via the { Iterator.remove},  * { @code Collection.remove}, { @code removeAll},  * { @code retainAll} and { @code clear} operations. 

此JavaDoc解释说,由values返回的CollectionMap支持,并且更改CollectionMap将会改变另一个。 我认为我无法解释JavaDoc在说什么比在那儿已经写的更好的东西了。因此,我现在将不再尝试该部分。 我只显示了values的文档,但是当我说keySetentrySet也都由Map的内容作为后盾时,您可以信任我。 如果您不相信我,可以自己阅读文档。

这也使用旧版 Java版本链接回第一个示例。 该文档指定可以使用Iterator.remove 。 这是早先使用的。 此外, removeIf的实现与Iterator示例非常相似。 讨论完之后,我不妨展示一下:

default boolean removeIf(Predicate<? super E> filter) {Objects.requireNonNull(filter);boolean removed = false;final Iterator<E> each = iterator();while (each.hasNext()) {if (filter.test(each.next())) {each.remove();removed = true;}}return removed;
}

还有一点额外的东西。 但是,否则几乎是一样的。

就是这样。 除了告诉我要记住要使用以下内容之外,没有什么其他结论:使用valueskeySetentrySet将提供对removeIf访问,从而允许轻松删除Map条目。

翻译自: https://www.javacodegeeks.com/2019/03/removing-elements-map-java.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/343016.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[渝粤教育] 广东-国家-开放大学 21秋期末考试建筑工程概预算10326k2

1、构造柱与墙体连接处的马牙槎&#xff0c;从每层柱脚开始&#xff0c;先退后进&#xff0c;沿墙高每&#xff08; &#xff09;设2φ6拉结钢筋。&#xff08;2 分&#xff09; A&#xff0e;700mm B&#xff0e;500mm C&#xff0e;400mm D&#xff0e;600mm 2、项目建设单位…

工业以太网交换机的产品性能有哪些呢?

工业以太网交换机的使用非常广泛&#xff0c;有智能交通、电子警察、平安城市、工厂自动化等&#xff0c;如何在恶劣的室外作业环境中保障数据的稳定传输&#xff0c;对网络和通讯设备提出了极高的适应性要求&#xff0c;那么&#xff0c;工业以太网交换机的产品性能有哪些呢&a…

android 年月日时分秒控件,Android 年月日时分秒时间选择器

项目开发中 如果你需要一个年月日时分秒类型时间选择器 用DataPicker和TimePicker联动去实现得话 会非常得不方便 会碰到布局不协调得问题 灵活性很低 可实现的布局也就两种 所以为了更好的效果 个人建议你使用 numberPicker 数字选择器 去实现 本人思路是 numberpicker结合Pop…

[渝粤教育] 广东-国家-开放大学 21秋期末考试招投标与合同管理10217k2 (2)

1、施工合同中&#xff0c;承包人按照工程师提出的施工进度计划修改建议进行了修改&#xff0c;由于修改后的计划不合理而导致的窝工损失应当由( )承担&#xff08;2 分&#xff09; A&#xff0e;发包人 B&#xff0e;发包人与承包人共同 C&#xff0e;承包人 D&#xff0e;工…

[渝粤教育] 广东-国家-开放大学 21秋期末考试电算化会计10169k2

单项选择题 1、在固定资产核算系统的卡片中&#xff0c;能够唯一确定每项资产的数据项是() &#xff08;2 分&#xff09; A&#xff0e;类别编号 B&#xff0e;规格型号 C&#xff0e;资产名称 D&#xff0e;资产编号 单项选择题 1、在固定资产核算系统的卡片中&#xff0c;能…

工业交换机的单模和多模能否互相替代?

客户在购买工业交换机的时候会被问道是要单模单纤、单模双纤、多模双纤等问题&#xff0c;还有用在什么地方&#xff0c;这些只有自己清楚了解了选购工业交换机时才会明白我们应该选什么类型的产品。但有客户会问工业交换机单模和多模能否互相替代?接下来飞畅科技的小编来给你…

物联网常用的组网方式浅析

一石激起千层浪&#xff0c;现代科技的网络革新可以变换着诸多行业的运作模式&#xff0c;甚至直接改变了我们的生活方式&#xff0c;网络技术与我们不再遥远与陌生。今天&#xff0c;小亿就带大家走近“LoRa”、“Zigbee”、“WIFI”、“NB-IOT”、“蓝牙”&#xff0c;现行常…

[渝粤教育] 广东-国家-开放大学 21秋期末考试财务管理10164k2 (2)

1、信用标准是(   )的重要内容。&#xff08;2 分&#xff09; A&#xff0e;现金折扣政策             B&#xff0e;信用期限 C&#xff0e;信用条件 D&#xff0e;收账政策              2、影响企业短期偿债能力的主要因素是&#xff08; &#…

使用Apache POI插入内容

介绍 大家都知道POI&#xff01; 它是可用Java创建Excel文档的最佳库。 它真的很好&#xff0c;可以轻松地完成很多事情。 但是最近我想做些不那么简单的事情。 我想将现有的xlsx文件用作模板&#xff0c;并在某些位置将一些数据插入其中。 在这篇文章中&#xff0c;我将说明为…

DC/DC电源模块是什么?有何特点

一、电源模块是什么&#xff1f; 电源模块是可以直接安装在印刷电路板上的电源供应器&#xff0c;有降压和升压两种&#xff0c;专用集成电路( ASIC )、数字信号处理器( DSP )、微处理器、存储器、现场可编程门阵列( FPGA )及其他数字或模拟负载提供供电。 二、DC/DC电源模块…

【渝粤教育】 广东开放大学 21秋期末考试组织行为学10068k2

1、组织行为学具有应用性学科性质。&#xff08;3 分&#xff09; 正确 错误 2、微观环境因素一般包括经济、政治、文化、法律和科学技术等。&#xff08;3 分&#xff09; 正确 错误 3、奖励与惩罚相结合&#xff0c;应该以罚为主&#xff0c;以奖为辅。&#xff08;3 分&…

工业交换机的价格为什么有高低之分?

最近&#xff0c;飞畅科技的小编发现客户在工业交换机价格上有很大的争议。为什么这么说呢&#xff1f;有的客户觉得为什么你们家的交换机这么贵&#xff0c;我便宜一半也能买到了&#xff0c;还有客户想花这些钱买这么一个工业交换机真的划算吗&#xff1f;那接下来小编就来和…

【渝粤教育】国家开放大学2018年春季 0221-21T数字电子电路 参考试题

编号&#xff1a;0221 2017-2018学年第二学期期末考试 数字电子电路&#xff08;开卷&#xff09; 试 题 2018年 7月 填空题&#xff08;每小题6分&#xff0c;共30分&#xff09; 1、在直流电路中&#xff0c;电容上的 及电感中的 一般不会突变。 2、NPN硅三极管工作在截止状…

html页面与js添加的页面区别,css、js、html三者有何区别?

HTML、CSS、JavaScript是前端学习非常重要的内容&#xff0c;作为前端工程师&#xff0c;建立网站&#xff0c;设计网页需要有一定的审美能力&#xff0c;也需要一定的编程技术。那么它们三者有什么区别&#xff1f;下面本篇文章就来给大家介绍一下。HTML为网页结构。CSS为网页…

电源模块质量好不好,看看以下5点就知道了!

电源模块作为电子设备的心脏&#xff0c;其可靠性直接影响产品的质量好坏&#xff0c;因此&#xff0c;在选择上正确判断模块的好坏显得尤为重要。一般我们在选择上仅从电源的输入、输出、纹波、击穿、温度、认证等特性指标来看&#xff0c;除开这些&#xff0c;我们还可以根据…

【渝粤教育】国家开放大学2018年春季 0507-21T非线性编辑 参考试题

科目编号&#xff1a;[0507] 座位号 2017-2018学年度第二学期期末考试(开卷) 非线性编辑 试题 2018年 7 月 填空题&#xff08;本大题共6小题&#xff0c;共10空&#xff0c;每空3分&#xff0c;共计30分&#xff09; 1&#xff0e;Desktop Display Mode电脑视频显示模式&…

电源模块的6个优势及其作用

随着电子行业的发展&#xff0c;对电源的要求体积更小、可靠性更高。加上高频软开关技术、半导体工艺和封装技术的进步&#xff0c;电源模块的功率密度越来越大&#xff0c;转换效率也越来越高&#xff0c;应用更加简单了。 电源模块与分立式方案相比&#xff0c;优势在哪里&am…

工业交换机有哪些功能?

工业交换机(Industrial Switch)也叫工业以太网交换机&#xff0c;是一种工作在OSI第二层(数据链路层&#xff0c;参见“广域网”定义)上的、基于MAC (网卡的介质访问控制地址)识别、能完成封装转发数据包功能的网络设备。那么&#xff0c;工业交换机的功能有哪些呢&#xff1f;…

【渝粤教育】国家开放大学2018年春季 0689-22T老年心理健康 参考试题

编号&#xff1a;0689 座位号 2017&#xff5e;2018学年度第二学期期末考试 老年心理健康试题 2018年7月 一、名词解释&#xff08;本大题共6小题&#xff0c;每题5分&#xff0c;共30分&#xff09; 期待性焦虑 忧郁&#xff1a; 急躁&#xff1a; 暴躁&#xff1a; 心理…

无处不在的蓝牙-蓝牙模块解析

在如今生活中&#xff0c;每个人都接触了无线连接、蓝牙传输。但是蓝牙模块还是很少见的。那么蓝牙模块有什么作用呢&#xff1f;具体又有哪些应用场景呢&#xff1f;本篇将为大家简单介绍蓝牙模块的作用以及常见的应用场景。 蓝牙模块按照标准分有1.2&#xff0c;2.0&#xf…