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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM