有些业务需要对集合对象内容分组 java8有个工具很好用。
//根据用户id分组
Map<String, List<User>> modelPreviewCollect = scripts.stream().collect(Collectors.groupingBy(u ->u.getId())));
//可根据多个标识分组
//组装多个标识
public String getCommonKey(int uid,int age,int num){
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(uid).append("_").append(age).append("_").append(num);
return stringBuilder.toString();
}
List<User> userList = new ArrayList<>();
Map<String, List<User>> userCollect = userList.stream().collect(Collectors.groupingBy(u ->
getCommonKey(u.getId(),script.getAge(),script.getNum())));