java8 lambda
public static void main(String[] args) {
ArrayList<User> users = Lists.newArrayList(
new User("李1","1"),
new User("李2","2"),
new User("李3","3"),
new User("李4","3"),
new User("李5","3")
);
//获取每组第一个
Map<String, User> collect1 =
users.stream().collect(Collectors.groupingBy(User::getAge,
Collectors.collectingAndThen(
Collectors.toList(),
v -> v.get(0)
// v->v.remove(0)
)));
//获取每组的非第一个
Map<String, ArrayList<User>> collect = users.stream().collect(
Collectors.groupingBy(
User::getAge,
LinkedHashMap::new,
Collectors.collectingAndThen(
Collectors.toList(),
// v -> v.get(0),
v -> {
User remove = v.remove(0);
return new ArrayList<User>(v);
}
)
)
);
System.out.println(collect);
}
@Data
@NoArgsConstructor
@AllArgsConstructor
static class User {
String name;
String age;
}