我有Map,其中键是字符串,值是Employee对象。看起来像Map,我是Java 8的新手,正在学习阶段
Map<String, Employee> cond_Map = new LinkedHashMap<String, Employee>();
if(Obj.getEmp == null){
cond_Map.forEach((key, value) -> {
if(key == "one"){
Obj.setEmp(value);
}
});
}
我试图使用过滤器使它成为单行且简单的
cond_Map.entrySet().stream().filter(key -> Python3Parser.If_stmtContext.class.isInstance(key.getKey())).collect(???);
但是它不起作用..!有人有主意吗?谢谢。
答案 0 :(得分:1)
您无需遍历地图即可找到具有匹配键的条目。通过键查找条目是地图的工作:
if(Obj.getEmp == null && cond_Map.containsKey("one")){
Obj.setEmp(cond_Map.get("one"));
}
答案 1 :(得分:0)
您正在使用key == "one"
而不是key.equals("one")
另一种使用过滤器的方法。
if (Obj.getEmp == null)
{
cond_Map.entrySet().stream()
.filter(entry -> "one".equals(entry.getKey())).forEach(entry -> {
Obj.setEmp(entry.getValue());
});
}