【发布时间】:2017-08-07 17:12:46
【问题描述】:
我有一个Map<String, ? extends Collection<SomeClass>>。我想确保没有集合大小为 0 的条目。因此我尝试了myMap.values().stream().map(Collection::size).allMatch(size -> size > 0)。然而,事实证明,myMap 包含空条目。
我想检查我的地图是否包含空条目:resourceMap.values().stream().noneMatch(null),但出现异常 java.util.Objects.requireNonNull。
我决定以一种相对老式的方式来做,使用 for-in 循环 for (Map.Entry<String, ? extends Collection> entry : myMap) 但是,我收到一个编译错误,告诉我 foreach 不适用于我的地图。
检查我的地图中的所有条目是否不为空且大小> 0的优雅方法是什么?
【问题讨论】:
-
.map(CollectionUtils::isNotEmpty)来自 commons-lang -
请出示您的
for each;) -
对于地图,您应该使用
map.entrySet(),然后在地图条目对象上进行迭代。
标签: java dictionary java-stream