&引用;包括「;使用Java 8 Streams API查询集合的类型

&引用;包括「;使用Java 8 Streams API查询集合的类型,java,lambda,java-8,Java,Lambda,Java 8,我们有一个需求,我们希望在我们的集合类型上有一个自动完成的场景 我们有一个对象列表,比如说雇员。现在的要求是,每当我输入say“man”时,它都应该返回所有在名称和电子邮件id中包含“man”的employee对象 我听说过LAMDBA和谓词特性,但不确定如何根据我们的要求使用它们 有谁能建议我们如何实现这一点。您可以使用: List=…//初始化列表。 List filterdList=List.stream() .filter(emp->emp.getName().contains(“man

我们有一个需求,我们希望在我们的集合类型上有一个自动完成的场景

我们有一个对象列表,比如说雇员。现在的要求是,每当我输入say“man”时,它都应该返回所有在名称和电子邮件id中包含“man”的employee对象

我听说过LAMDBA和谓词特性,但不确定如何根据我们的要求使用它们

有谁能建议我们如何实现这一点。

您可以使用:

List=…//初始化列表。
List filterdList=List.stream()
.filter(emp->emp.getName().contains(“man”))
.filter(emp->emp.getEmail().contains(“man”))
.collect(Collectors.toList());

emails.stream().filter(s->s.contains(“man”))
你好,David,谢谢你的回答。想检查这两个过滤条件如何工作。?。它是否会或和谓词条件?它始终是and。
filter
方法返回一个
流,其中包含与谓词匹配的元素。如果希望元素匹配这两个条件之一,可以使用
.filter(emp->emp.getName().contains(“man”)| emp.getEmail().contains(“man”)
。另外,
filter
方法所需的参数是一个
谓词
,如果您想获得一个包含两个谓词或的组合
谓词
,则
谓词
接口有一个方法。
List<Employee> list = ... // Initialize the list.
List<Employee> filterdList = list.stream()
    .filter(emp->emp.getName().contains("man"))
    .filter(emp->emp.getEmail().contains("man"))
    .collect(Collectors.toList());