中stream的.findAny().orElse (null) 是什么意思?

 

 

List<User> userList = new ArrayList();

User user1 = userList.stream().filter(user -> "zhangsan".equals(user.getUserName())).findAny().orElse(null);

1、filter为过滤,user代表userList中的一个User;
2、userList.stream().filter(user -> “zhangsan”.equals(user.getUserName()))表示过滤出userList中名字为zhangsan的user;
3、.findAny()表示将其中任意一个返回;【注意:在Java 8 Stream中, findFirst()返回Stream中的第一个元素,而findAny()返回Stream中的任何元素。】
4、.orElse(null)表示如果一个都没找到返回null。【orElse()中可以塞默认值。如果找不到就会返回orElse中你自己设置的默认值。】
以上为Java8新语法的内容,推荐一本书《Java8实战》建议学习,可有效提高代码效率。

posted @ 2020-12-09 20:01  君子笑而不语  阅读(3574)  评论(0编辑  收藏  举报