gpt4 book ai didi

java流按属性对列表进行排序/过滤

转载 作者:太空宇宙 更新时间:2023-11-04 12:07:23 31 4
gpt4 key购买 nike

我有一些逻辑可以根据不活动的用户创建通知。我正在获取具有以下属性的用户列表。我想做的只是在部门有非 Activity 用户时触发我的创建通知方法。因此,给出下面的列表,基本上会创建 1 个通知,表示部门 1 有一个不活动的用户,并创建另一个通知,部门 2。希望这是有道理的

users:
{name: John, active: f, deptId: 1}
{name: Jane, active: f, deptId: 1}
{name: Mike, active: t, deptId: 1}
{name: Joe, active: f, deptId: 2}
{name: Jim, active: t, deptId: 2}

我当前的代码基本上会获取此列表,然后检查每个列表上的 Activity 标志并为每个用户创建一个通知 - 但我需要重构它。

List<User> users = userRepository.findAll();
for(User u : users){
if(u != null && u.getActive == false){
....create Notification method

按部门对这些组进行分组,然后仅检查每个组是否有 Activity 标志 false 并创建 1 个通知而不是为每个不活动的用户创建通知的最佳方法是什么?

最佳答案

也许您会发现以下代码片段很有帮助:

public Map<String, List<User>> getInactiveUsersByDepartment(List<User> allUsers) {
return allUsers.stream().filter(user -> user != null).filter(user -> !user.getActive()).collect(Collectors.groupingBy(User::getDepartment));
}

关于java流按属性对列表进行排序/过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40223456/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com