List中用Stream,filter代替for循环

首先创建一个Student类

public Class Student{
    private Long id;

    private String name;
   
    .....
    
     ....省略get和set方法  
}

在List<Student>中查找name为ZhangSan的对象Strudent

在Java8中我们可以这样操作

1.查找集合中的第一个对象

 Optional<A> firstA= AList.stream() .filter(a -> "hanmeimei".equals(a.getUserName())) .findFirst();

关于Optional,java API中给了解释。

A container object which may or may not contain a non-null value. If a value is present, isPresent() will return true and get() will return the value.

2.如果想返回集合

 List<A> firstA= AList.stream() .filter(a -> "hanmeimei".equals(a.getUserName())) .collect(Collectors.toList());

3.抽取对象中所有id的集合

List<Long> idList = AList.stream.map(A::getId).collect(Collectors.toList());

是不是很方便呦!

    原文作者:一个喜欢健身的程序员
    原文地址: https://blog.csdn.net/sunayn/article/details/84144767
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞