Java Stream过滤一个对象列表,该列表不包含特定项目列表作为属性。

5

我有一个用户列表。

public class User {
private String UserID;
private String departmentId;
private String email;
}

我有一个部门ID列表

List<String> departmentIdList = Arrays.asList("111", "2222");

我需要筛选出部门ID不在departmentIdList中的用户。 根据上面的例子,我需要部门ID不等于111或2222的用户。


你的Java版本是什么? - seenukarthi
Java版本1.8.0 - MA-Dev
2个回答

8
List<User> users = new ArrayList<>();

List<String> departmentIdList = Arrays.asList("111", "2222");

List<User> usersNotInDepartments = users.stream()
        .filter(u -> !departmentIdList.contains(u.departmentId))
        .collect(Collectors.toList());

我建议您将departmentIdList更改为Set数据结构,因为它在查找方面比列表更具性能。


5
users.stream().filter(
    u -> ! departmentIdList.contains(u.getDepartmentId())
).collect(Collectors.toList())

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接