java List按照对象的属性进行分组
2021-09-10 本文已影响0人
猫的树
问题描述:
在java的开发过程中,我们往往也需要用对象进行分组进行处理
解决方案:
1.循环分组
代码如下:
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);
}
2.Java 8 Stream
代码如下:
Map<String,List<UserInfo>> map= userList.stream().collect(Collectors.groupingBy(UserInfo::getCardId));