2016-08-01 81 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