java stream用法

本文介绍取出列表中元素某一个属性的最大值,最小值,及按某个元素分组

 

先创建一个测试类

public class TestEntity {

    private Long id;

    private String name;

    private Long age;

    //省略get set方法
}

构造一个列表

        List<TestEntity> testEntityList = new ArrayList<>();
        testEntityList.add(buildTestEntity(1L, "张三", 18L));
        testEntityList.add(buildTestEntity(2L, "李四", 17L));
        testEntityList.add(buildTestEntity(3L, "王五", 19L));
        testEntityList.add(buildTestEntity(4L, "赵六", 16L));

 

取出年龄最大值

Long maxAge = testEntityList.stream().mapToLong(TestEntity::getAge).max().getAsLong();

取出年龄最小值

Long minAge = testEntityList.stream().mapToLong(TestEntity::getAge).min().getAsLong();

按id分组

Map<Long, List<TestEntity>> entityMapById = testEntityList.stream().collect(Collectors.groupingBy(TestEntity::getId));

 过滤出年龄为16的元素

List<TestEntity> entityList = testEntityList.stream().filter(entity -> entity.getAge() == 16).collect(Collectors.toList());

 

  

 

posted @ 2021-03-10 10:37  到三国卖栗子  阅读(148)  评论(0编辑  收藏  举报