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));