如何用Java将list根据某个字段进行分组
时间: 2024-06-10 18:07:29 浏览: 124
List对象去重和按照某个字段排序的实现方法
可以使用Java 8的Stream API来实现。
假设我们有一个List<User>,每个User对象都包含一个name和age属性。我们需要按照name进行分组,可以使用如下代码:
Map<String, List<User>> groupMap = userList.stream()
.collect(Collectors.groupingBy(User::getName));
其中,User::getName是一个方法引用,代表按照User对象的name属性进行分组。groupMap的类型是Map<String, List<User>>,其中String表示分组的依据,List<User>表示分组后的结果。
可以通过遍历groupMap来查看分组结果:
for (Map.Entry<String, List<User>> entry : groupMap.entrySet()) {
System.out.println("分组:" + entry.getKey());
for (User user : entry.getValue()) {
System.out.println(user.getName() + "," + user.getAge());
}
}
以上代码会打印出每个分组的名称,以及该分组中的每个用户的name和age属性。
阅读全文