我想按LinkedList<String>
的大小過濾ConcurrentHashMap<String, LinkedList<String>>
。按值過濾ConcurrentHashMap
換句話說,我想過濾掉ConcurrentHashMap
中LinkedList<String>
的大小大於4的元素。我如何通過Java 8完成它?
我想按LinkedList<String>
的大小過濾ConcurrentHashMap<String, LinkedList<String>>
。按值過濾ConcurrentHashMap
換句話說,我想過濾掉ConcurrentHashMap
中LinkedList<String>
的大小大於4的元素。我如何通過Java 8完成它?
如果你有ConcurrentMap
,你可以簡單地創建其條目的數據流,通過調用entrySet()
然後stream()
,並保持其中的值具有通過施加filter
比4的長度更大的條目。最後,您可以使用內置的Collectors.toConcurrentMap
將其再次收集到ConcurrentMap
中。
ConcurrentMap<String, LinkedList<String>> map = new ConcurrentHashMap<>();
ConcurrentMap<String, LinkedList<String>> result =
map.entrySet()
.stream()
.filter(e -> e.getValue().size() > 4)
.collect(Collectors.toConcurrentMap(Map.Entry::getKey, Map.Entry::getValue));
或者,你可以通過修改與
map.values().removeIf(l -> l.size() <= 4);
感謝一堆,這工作。一個小錯誤 - Map
地圖你所說的「過濾器」的意思去做就地?你的過濾標準是什麼?請添加更多信息 –