Java 如何从员工地图道具中检索id值

Java 如何从员工地图道具中检索id值,java,java-8,java-stream,Java,Java 8,Java Stream,下面是接受Employee对象列表的方法,我需要传递map obejct的id值,它位于Employee对象内部。我是Java8新手,请查看以下内容: class Service { void meth(List<Employee> employees){ employees.stream().flatMap(e -> map = e.getProps()) .keySet().stream())

下面是接受Employee对象列表的方法,我需要传递map obejct的id值,它位于Employee对象内部。我是Java8新手,请查看以下内容:

class Service {
     void meth(List<Employee> employees){
                employees.stream().flatMap(e -> map = e.getProps())
                .keySet().stream())     
                .filter(s -> s.equals("id"))         
                .allMatch(idValue -> isIdValid(empName, idValue).test(id)); //how to pass empName and  "id" Value here from employee map props object??
        }


      boolean isIdValid(String name, String id){
         //validation of id here
      }
    }


class Employee{
    String name;
    Map<String, Object> props;
}

我需要在isIdValid方法中传递empName和“id”值,请如何?

您可以使用
入口集作为:

return employees.stream()
                .flatMap(e -> e.getProps().entrySet().stream())
                .filter(s -> s.getKey().equals("id"))
                .allMatch(e -> isIdValid(idValue).test(e.getValue())); 

编辑:-带着更新的问题,似乎你在寻找

return employees.stream()
        .filter(emp -> emp.getProps().containsKey("id"))
        .allMatch(emp -> isIdValid(emp.getName(),
                (String) emp.getProps().get("id")));

在上面,我可以使用地图,而不是平面地图?如何写上面一个使用地图?而不是平面图?我只是想知道..我编辑了这个问题,请看一看,连同id,我还需要传递emp name,怎么做?@john只需添加
.filter(e->e.getName().equals(name)
stream()
@ginkul之后,但是如何在isIdValid方法中传递empName?
return employees.stream()
        .filter(emp -> emp.getProps().containsKey("id"))
        .allMatch(emp -> isIdValid(emp.getName(),
                (String) emp.getProps().get("id")));