该方法采用两个参数-一个map和一个set。将集合转换为列表并开始查找匹配项—Map中具有键的列表项。如果出现匹配项,它会将旧Map的元素复制到新Map。
public Map<String, Boolean> getValidMap(Set<String> set, Map<String, Boolean> map) {
Map<String, Boolean> validMap = new HashMap<>();
List<String> mainList = new ArrayList<>(set);
for (String listRule : mainList) {
for (Map.Entry<String, Boolean> mapRule : map.entrySet()) {
if (listRule.equals(mapRule.getKey()))
validMap.put(mapRule.getKey(), mapRule.getValue());
}
}
return validMap;
}
我想用lambda表达式和流替换for和if条件的循环。我不熟悉streams和lambda,所以我请求帮助解决这个问题。
2条答案
按热度按时间1cklez4t1#
您可以直接从集合中使用for并使用computeifpresent:
kninwzqo2#
基本上,你可以将
Map
然后过滤输入中有键的条目set
最后把这些条目收集到Map
把它还给我