问题描述:
想要
List<list<User>>中每30个成员合并成一个List<User>;
List<List<User>> users = new ArrayList<>();
for(int i = 0; i < 10; i++){
List<User> subUsers = new ArrayList<>();
for (int j = 0; j < 5; j++){
User user = new User("User_" + i + "_" + j);
subUsers.add(user);
}
users.add(subUsers);
}
List<List<User>> result = new ArrayList<>();
// 第一步:合并为一个List
List<User> userList = users.stream().flatMap(sub -> sub.stream()).collect(Collectors.toList());
// 第二步:拆分为(userList.size() + 29) / 30个子List
Stream.iterate(0,n -> n+1).limit((userList.size() + 29) / 30).forEach(i -> {
result.add(userList.stream().skip(i*30).limit(30).collect(Collectors.toList()));
});