stream流复杂用法
时间: 2023-12-07 16:36:35 浏览: 33
Stream流是Java 8中引入的一种新的处理集合的方式,它可以让我们以一种声明性的方式来处理数据,从而让代码更加简洁、易读、易维护。Stream流的使用可以分为三个步骤:生成流、中间操作、终止操作。其中,生成流可以通过集合、数组、静态工厂方法等方式来实现。中间操作包括过滤、映射、排序、去重等操作,这些操作都是惰性求值的,也就是说只有在终止操作时才会执行。终止操作包括收集、归约、查找、匹配等操作,这些操作会触发流的遍历,产生最终的结果。Stream流的收集操作可以将流中的元素收集到集合中,常用的收集方法有toList、toSet、toMap等。此外,我们还可以通过自定义Collector来实现更加灵活的收集操作。
举个例子,假设我们有一个List<Integer>,我们想要将其中的偶数收集到一个新的List中,可以使用以下代码:
```java
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6);
List<Integer> evenList = list.stream()
.filter(i -> i % 2 == 0)
.collect(Collectors.toList());
```
以上代码中,我们首先通过Arrays.asList方法生成了一个List,然后使用stream方法将其转换为Stream流。接着,我们使用filter方法过滤出其中的偶数,最后使用collect方法将结果收集到一个新的List中。