java通过Stream对list集合分组

java通过Stream对list集合分组

现在有一个List集合,想对该集合中的数据分组处理,想到java8中的stream,就搞来试试,非常给力!例子如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
package com.maps;
 
public class User{
private Integer id;
private String type;
private String name;
 
public User(){}
public User(Integer id,String type,String name){
this.id = id;
this.type = type;
this.name = name;
}
 
public void setId(Integer id){
this.id = id;
}
 
public Integer getId(){
return id;
}
 
public void setType(String type){
this.type = type;
}
 
public String getType(){
return type;
}
 
public void setName(String name){
this.name = name;
}
 
public String getName(){
return name;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
package com.maps;
 
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
 
public class MainUser{
 
public static void main(String[] args){
List<User> list = getUserList();
Map<String,List<User>> userGroupMap = list.stream().collect(Collectors.groupingBy(User::getType));
}
 
 
public static List<User> getUserList(){
User user1 = new User(1,"张三","小学");
User user2 = new User(2,"李四","小学");
User user3 = new User(3,"王五","初中");
User user4 = new User(4,"马六","高中");
 
List<User> list = new ArrayList<User>();
list.add(user1);
list.add(user2);
list.add(user3);
list.add(user4);
 
return list;
}
}

运行上面例子得到下面的结果

1
{高中=[com.maps.User@448139f0], 初中=[com.maps.User@7cca494b], 小学=[com.maps.User@7ba
posted @   Mr_伍先生  阅读(113363)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示