Nei*_*eil 2 java collections lambda java-8 java-stream
我有一个人的域名
public class Person{
String name;
}
Run Code Online (Sandbox Code Playgroud)
我有一个列表的人名字符串,如
listRange = new ListWith("Bob","John","Mark");
Run Code Online (Sandbox Code Playgroud)
我如何使用Java 8流在resultList中过滤,哪个人在此范围列表中具有名称.可能就像
resultList.stream().filter(p->p.getName().equals(listRange.any).collect();
Run Code Online (Sandbox Code Playgroud)
如何使用Lambda过滤resultList?
您正在寻找的只是contains
方法:
resultList.stream().filter(p -> listRange.contains(p.getName()))
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
如果您的名单仅用于从结果中过滤掉人员,则应考虑使用a Set
作为其contains
方法是O(1)(常数时间),这样可以获得更好的性能.