我有一个用户列表。
public class User {
private String UserID;
private String departmentId;
private String email;
}
Run Code Online (Sandbox Code Playgroud)
我有一个部门 ID 列表
List<String> departmentIdList = Arrays.asList("111", "2222");
Run Code Online (Sandbox Code Playgroud)
我需要过滤部门ID不在departmentIdList中的用户。根据上面的示例,我需要部门 ID 不等于 111 或 2222 的用户。
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());
Run Code Online (Sandbox Code Playgroud)
我建议您将 DepartmentIdList 设置为 Set 数据结构,因为它比查找列表的性能更高
users.stream().filter(
u -> ! departmentIdList.contains(u.getDepartmentId())
).collect(Collectors.toList())
Run Code Online (Sandbox Code Playgroud)