2016-08-01 71 views
1

我有一个Map。比方说,java streams - 从值集合使用条件的值集合元素

地图> 我要收集所有的长值(键) 当至少有一个使用Java流MyObj中回答

myObj.isEnabled=false 

我试图

map.entrySet().stream().filter(entry->entry.getValue().stream().filter(x->!x.isEnabled())).findAny().collect() 
+2

你为什么要尝试?它是如何实现你的目标或者它有什么问题? –

回答

4
List<Long> keys = map.entrySet() 
     .stream() 
     .filter(e -> e.getValue().stream().anyMatch(o -> !o.isEnabled())) 
     .map(Map.Entry::getKey) 
     .collect(Collectors.toList()); 
+0

谢谢。这给了我List >> collect。我如何将它收集到地图? (Collectors.toMap似乎不喜欢它) – Jeb

+1

@rails我的坏,修复。 – shmosel

+2

@rail等等,你想收集一个键列表,还是带有过滤条目的地图? – shmosel