如何在流式传输时删除哈希映射的元素 (lambda)
2022-08-31 16:31:54
我遇到以下情况,我需要从流中删除元素。
map.entrySet().stream().filter(t -> t.getValue().equals("0")).
forEach(t -> map.remove(t.getKey()));
在Java 8之前的代码中,可以从迭代器中删除 - 在这里处理这种情况的最佳方法是什么?
我遇到以下情况,我需要从流中删除元素。
map.entrySet().stream().filter(t -> t.getValue().equals("0")).
forEach(t -> map.remove(t.getKey()));
在Java 8之前的代码中,可以从迭代器中删除 - 在这里处理这种情况的最佳方法是什么?
map.entrySet().removeIf(entry -> entry.getValue().equals("0"));
你不能用流来做,但可以用其他新方法做。
编辑:甚至更好:
map.values().removeAll(Collections.singleton("0"));
如果要删除整个密钥,请使用:
myMap.entrySet().removeIf(map -> map.getValue().containsValue("0"));