对List进行分组
程序员文章站
2022-05-21 16:13:55
...
1.Java8以前(传统方式)
//方法一
Map<Object, List<User>> userByRegister = new HashMap<>();//新建一个map
for (User u : users) {//遍历List
List<User> tmpList = userByRegister.get(u.getRegisterChannel());//根据key取值
if (tmpList == null) {//如果值为空
tmpList = new ArrayList<>(); //则新建一个列表
tmpList.add(u);//将对象u放入到表里
userByRegister.put(u.getRegisterChannel(), tmpList);//将列表根据key放入map
} else {//如果值不为空
tmpList.add(u);//直接放入
}
}
2.Java8之后(流的方式)
//方法二
Map<Object,List<User>> userByRegister=users.stream().collect(Collectors.groupingBy(User::getRegisterChannel));
上一篇: 邻接表(邻接图)