stream对比查找返回集合
时间: 2024-11-25 21:33:16 浏览: 2
面试宝典新版.docx
在Java 8的Stream API中,如果你想查找集合中满足特定条件的元素并返回一个新的集合,可以使用`filter()`方法筛选出符合条件的元素,然后使用`collect(Collectors.toList())`将结果收集到一个新的列表中。这个过程通常比传统的for-each循环更高效,因为它利用了内部的并行处理能力。
举个例子,假设我们有一个人群列表(Person[]),我们想要创建一个新的列表只包含年龄大于30的人:
```java
Person[] people = {new Person("Alice", 25), new Person("Bob", 30), new Person("Charlie", 35)};
List<Person> adultsAboveThirty = Arrays.stream(people)
.filter(person -> person.getAge() > 30) // 过滤条件
.collect(Collectors.toList()); // 收集到新的列表
System.out.println(adultsAboveThirty); // 输出:[Bob, Charlie]
```
在这个例子中,`filter()`函数应用了一个闭包(lambda表达式`person -> person.getAge() > 30`),返回一个仅包含符合条件元素的新流。`collect(toList())`则将这个流转换成一个列表。
阅读全文