.stream().filter(真假)
时间: 2023-10-15 13:25:53 浏览: 116
使用.stream().filter(条件)可以在Java中对流进行筛选操作。其中条件可以是一个lambda表达式或者一个Predicate接口的实现。筛选操作会根据条件过滤出符合条件的元素,并返回一个新的流。以下是几个示例:
1. 使用lambda表达式进行筛选:
Stream.of(1, 2, 3, 4, 5)
.filter(item -> item > 3)
.forEach(System.out::println);
// 打印结果:4, 5
2. 使用Predicate接口进行筛选:
List<User> subUserList1 = userList.stream()
.filter(e -> e.getAge() < 10)
.filter(e -> e.getGender().equals("男"))
.collect(() -> new ArrayList<>(), (c, e) -> c.add(e), (c1, c2) -> c1.addAll(c2));
在这个例子中,我们对一个包含User对象的列表进行筛选操作,筛选出年龄小于10岁且性别为"男"的用户,并将结果收集到一个新的列表中。
3. 对流进行跳过操作:
Stream.of(1, 2, 3, 4, 5)
.skip(2)
.forEach(System.out::println);
// 打印结果:3, 4, 5
在这个例子中,我们对一个包含整数的流进行跳过操作,跳过前两个元素,然后打印剩下的元素。
所以,.stream().filter(条件)可以用来对流进行筛选操作,并返回符合条件的元素。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [Java8新特性总结 -5.Stream API函数式操作流元素集合](https://blog.csdn.net/xingbaozhen1210/article/details/79397484)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* [Java8 新特性(二)- Stream](https://blog.csdn.net/LHAT_7/article/details/104001397)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文