zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    JavaBean命名不规范导致数据导出丢失
    Vue应用部署
    vue-cli的lib库模式下调试和不输出map文件
    Vue CLI的理解
    MongoDB副本集原理
    MongDB副本集成员状态
    Appium Android环境搭建
    如何自己实现一个HTMLRunner
    使用Flask搭建基于unittest的简单用例挑选及执行平台
    Django Admin中增加导出Excel功能
  • 原文地址:https://www.cnblogs.com/mr-wuxiansheng/p/7911626.html
Copyright © 2011-2022 走看看