List按照对象的属性进行分组返回Map

问题描述

在java的开发过程中,我们往往也需要用对象进行分组进行处理

 解决方案

方案一:循环分组

Map<String, List<UserInfo>> map = new HashMap();
List<UserInfo> newUsers= null;
for (UserInfo user: userList) {
    if (!map.containsKey(user.getCardId())) {
        newUsers = new ArrayList<>();
    } else {
        newUsers = map.get(user.getCardId());
    }
    newUsers.add(user);
    map.put(user.getCardId(), user);
}

方案二:Java 8 Stream

Map<String,List<UserInfo>> map= userList.stream().collect(Collectors.groupingBy(UserInfo::getCardId));

猜你喜欢

转载自blog.csdn.net/yexiaomodemo/article/details/130150678