如果 Map 中的所有 List 值都为空/非空,则使用流返回布尔值Stream::allMatch
2022-09-01 03:38:35
给定一个将字符串映射到列表
的 Map
,有没有办法使用 Java Streams 返回一个布尔值,其中 TRUE 表示一个或多个列表具有元素?如果映射中的所有列表都为空,则返回 FALSE。
Map< String , List<String> > map = …
使用Streams可以取代这种传统代码吗?
// See if any diffs were found. Loop through the Map, look at each List of diffs to see if non-empty.
boolean anyElementsInAnyList = false;
for (List<String> list : map.values () ) {
if (!list.isEmpty()) {
anyElementsInAnyList = true;
break;
}
}
请注意,我们可以在第一次发现后突破检查。无需检查所有 Map 值(所有列表)。如果为了提高效率,Stream可以执行相同的“首次查找时停止工作”(“短路”操作)会很好。