【java8新特性--java8集合操作大全--关于Stream看这一篇就够了】

java8新特性–java8集合操作大全–关于Stream看这一篇就够了

小编最近在项目中review代码的时候发现好多同学还不太会使用java8中对于集合操作的新玩法,特出此篇博文来总结一下在java8中关于集合的骚操作,如果文章对您有一点点帮助的话,还望您点赞收藏防止迷路哟~

前言:关于下面具体例子中所使用到的实体以及集合进行说明如下
StudentDTO:学生信息实体类
List<StudentDTO> list:学生集合

1.筛选出所有年龄为18的学生集合

//筛选出所有年龄为18的学生集合
List<StudentDTO> ageList = list
.stream()
.filter(student-> 18=student.getAge())
.collect(Collectors.toList());

2.按照学生年龄升序排序

//按照学生年龄升序排序
List<StudentDTO> sortList = list
.stream()
.sorted(Comparator.comparing(StudentDTO::getAge)).
collect(Collectors.toList());

3.按照学生年龄降序排序

//按照学生年龄降序排序
List<StudentDTO> sortList = list
.stream()
.sorted(Comparator.comparing(StudentDTO::getAge).reversed())
.collect(Collectors.toList());

4.取出所有学生的姓名并去重

//取出所有学生的姓名并去重
List<String> nameList = list
.stream()
.map(StudentDTO::getName)
.distinct()
.collect(Collectors.toList());

5.按照学生姓名首字母排序

    // 排序实现 按照中文首字母拼音排序
    Comparator comparator = Collator.getInstance(Locale.CHINA);

    Collections.sort(list, (e1, e2) -> {
        return comparator.compare(e1.getName(), e2.getName());
    });

6.去除List集合中的null元素

//去除List集合中的null元素
List<StudentDTO> notNullList = list.removeAll(Collections.singleton(null));

7.List转为Map

//List转为Map
Map<Long, StudentDTO> map = list
.stream()
.collect(Collectors.toMap(StudentDTO::getId, Function.identity(), (key1, key2) -> key2));

8.List对某个属性进行分组(eg:按照年龄分组)

//List对某个属性进行分组(eg:按照年龄分组)
Map<Long, List<StudentDTO>> map = list.stream().collect(Collectors.groupingBy(StudentDTO::getAge));

9.找出年龄最大的学生

//找出年龄最大的学生
StudentDTO studentDTO = list.stream().max(Comparator.comparing(StudentDTO ::getAge)).orElse(null);

10.找出年龄最小的学生

//找出年龄最大的学生
StudentDTO studentDTO = list.stream().min(Comparator.comparing(StudentDTO ::getAge)).orElse(null);
至此,java8关于集合操作算是入门啦!!!
小伙伴们如果在项目中遇到问题可以在线讨论哟!!!
本文章纯属个人学习记录,如有问题,请不吝赐教。 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值