栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2021-10-28

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021-10-28

java jdk1.8 新特性:stream流进行list 分组归类

```package com.springboot;


public class TestVO {
    private String name;
    private Integer old;
    private String work;

    @Override
    public String toString() {
        return "TestVO{" +
                "name='" + name + ''' +
                ", old=" + old +
                ", work='" + work + ''' +
                '}';
    }

    public TestVO(String name, Integer old, String work) {
        this.name = name;
        this.old = old;
        this.work = work;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getOld() {
        return old;
    }

    public void setOld(Integer old) {
        this.old = old;
    }

    public String getWork() {
        return work;
    }

    public void setWork(String work) {
        this.work = work;
    }
}

```java
package com.springboot;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;


public class TestApp {
    public static void main(String[] args) {
        List testVOList = new ArrayList();
        testVOList.add(new TestVO("小明",18,"student"))  ;
        testVOList.add( new TestVO("小明",20,"student"))  ;
        testVOList.add(new TestVO("小黄",20,"打铁的"))  ;
        testVOList.add(new TestVO("小黄",18,"打铁的"))  ;
        testVOList.add(new TestVO("小黑",18,"student"))  ;
        List> nameList = new ArrayList<>();
        testVOList.stream().collect(Collectors.groupingBy(TestVO::getName,
                Collectors.toList())).forEach((name,fooListByName)->{
            nameList.add(fooListByName);
                });
        for (List group: nameList) {
            System.out.println("nameList::"+group.size());
            System.out.println("nameList::"+group);
        }

        List> oldList = new ArrayList<>();
        testVOList.stream().collect(Collectors.groupingBy(TestVO::getName,
                Collectors.toList())).forEach((name,fooListByName)->{
            oldList.add(fooListByName);
                });

        for (List group: oldList) {
            System.out.println("oldList::"+group.size());
            System.out.println("oldList::"+group);
        }


        List> workList = new ArrayList<>();
        testVOList.stream().collect(Collectors.groupingBy(TestVO::getName,
                Collectors.toList())).forEach((name,fooListByName)->{
            workList.add(fooListByName);
                });

        for (List group: workList) {
            System.out.println("workList::"+group.size());
            System.out.println("workList::"+group);
        }


    }
}

输出如下:
nameList::2
nameList::[TestVO{name='小明', old=18, work='student'}, TestVO{name='小明', old=20, work='student'}]
nameList::1
nameList::[TestVO{name='小黑', old=18, work='student'}]
nameList::2
nameList::[TestVO{name='小黄', old=20, work='打铁的'}, TestVO{name='小黄', old=18, work='打铁的'}]
oldList::2
oldList::[TestVO{name='小明', old=18, work='student'}, TestVO{name='小明', old=20, work='student'}]
oldList::1
oldList::[TestVO{name='小黑', old=18, work='student'}]
oldList::2
oldList::[TestVO{name='小黄', old=20, work='打铁的'}, TestVO{name='小黄', old=18, work='打铁的'}]
workList::2
workList::[TestVO{name='小明', old=18, work='student'}, TestVO{name='小明', old=20, work='student'}]
workList::1
workList::[TestVO{name='小黑', old=18, work='student'}]
workList::2
workList::[TestVO{name='小黄', old=20, work='打铁的'}, TestVO{name='小黄', old=18, work='打铁的'}]

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/353697.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号