java Stream
时间: 2023-10-25 08:29:39 浏览: 90
java stream
Java 8引入的Stream API是一种处理集合数据的新方式,它可以让你以一种声明性的方式处理数据,而不是使用传统的循环语句。
Stream API包含了很多的操作方法,可以分为两类:中间操作和终止操作。中间操作会返回一个新的Stream对象,而终止操作会返回一个非Stream的结果,如List、Map、int等。
下面是一些常用的Stream操作方法:
1. `filter()`:根据条件过滤Stream中的元素,返回一个新的Stream对象。
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> evenNumbers = numbers.stream()
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
```
2. `map()`:对Stream中的每个元素执行给定的函数,返回一个新的Stream对象。
```java
List<String> words = Arrays.asList("hello", "world");
List<Integer> lengths = words.stream()
.map(String::length)
.collect(Collectors.toList());
```
3. `flatMap()`:将Stream中的每个元素转换为一个新的Stream对象,然后将所有的Stream对象合并为一个新的Stream对象。
```java
List<List<String>> names = Arrays.asList(
Arrays.asList("Tom", "Jerry"),
Arrays.asList("Alice", "Bob")
);
List<String> allNames = names.stream()
.flatMap(Collection::stream)
.collect(Collectors.toList());
```
4. `reduce()`:将Stream中的元素组合起来,得到一个非Stream的结果。
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream().reduce(0, Integer::sum);
```
在这个示例中,我们使用 `reduce()` 方法将Stream中的所有整数相加得到一个总和。
Stream API可以让你更加方便和直观地处理集合数据,而不用编写繁琐的循环代码。同时,Stream API也支持并发处理,可以提高处理大数据集合的效率。
阅读全文