热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

验证地图中的所有值是否均为真

探讨如何高效地检查Java中地图对象的所有值是否均为布尔真值,并提供了一行代码解决方案。

假设您有一个Map类型的地图,例如:

Map map = new HashMap<>();
map.put("A", true);
map.put("B", true);
map.put("C", false);
map.put("D", true);
map.put("E", true);

您的目标是在所有值均为真时设置一个布尔标志为真,只要存在任何一个值为假,则该标志应被设置为假。

虽然可以通过传统的迭代方法实现这一功能,但这里介绍一种更加简洁的方法——利用Java 8引入的流(Stream)API来完成任务。具体做法如下:

boolean flag = map.values().stream().allMatch(Boolean::booleanValue);

上述代码通过调用allMatch方法检查地图中的所有值是否满足给定的条件,在本例中即所有值是否均为真。需要注意的是,当地图为空时,allMatch会默认返回true。因此,若希望仅在地图非空且所有值均为真时才将标志设为真,可采用以下方式:

boolean flag = !map.isEmpty() && map.values().stream().allMatch(Boolean::booleanValue);

此外,还有另一种更为简洁的方法,由@Holger提出,直接检查地图中是否包含值为假的条目:

boolean flag = !map.containsValue(false);

这种方法不仅代码量更少,而且在大多数情况下性能也更好。


推荐阅读
author-avatar
猫心晴空5_826
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有