java stream流 教程
时间: 2023-06-10 21:09:08 浏览: 152
Java Stream是Java 8中引入的新特性,它提供了一种简洁、高效的处理集合(List、Set、Map等)和数组的方式。它可以让我们在不改变原有数据结构的基础上,以一种函数式编程的方式操作数据,使代码更加简洁易懂。
下面是Java Stream流的一些常用方法及其使用方式:
1. filter:过滤
filter方法可以过滤掉不符合条件的元素,只留下符合条件的元素。
例如:
```java
List<Integer> nums = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> evenNums = nums.stream().filter(n -> n % 2 == 0).collect(Collectors.toList());
```
这段代码将nums集合中的偶数过滤出来,得到一个新的集合evenNums。
2. map:映射
map方法可以将集合中的每个元素映射成另一个元素。
例如:
```java
List<String> words = Arrays.asList("hello", "world");
List<Integer> wordLengths = words.stream().map(String::length).collect(Collectors.toList());
```
这段代码将words集合中的每个元素(字符串)的长度映射成一个新的集合wordLengths。
3. flatMap:扁平化
flatMap方法可以将多个集合合并成一个集合。
例如:
```java
List<List<Integer>> numsList = Arrays.asList(Arrays.asList(1, 2), Arrays.asList(3, 4), Arrays.asList(5, 6));
List<Integer> nums = numsList.stream().flatMap(Collection::stream).collect(Collectors.toList());
```
这段代码将numsList中的所有元素合并成一个新的集合nums。
4. forEach:遍历
forEach方法可以遍历集合中的每个元素。
例如:
```java
List<Integer> nums = Arrays.asList(1, 2, 3, 4, 5);
nums.stream().forEach(System.out::println);
```
这段代码将nums集合中的每个元素打印出来。
5. reduce:归约
reduce方法可以将集合中的多个元素归约成一个元素。
例如:
```java
List<Integer> nums = Arrays.asList(1, 2, 3, 4, 5);
int sum = nums.stream().reduce(0, Integer::sum);
```
这段代码将nums集合中的所有元素相加得到一个sum值。
以上是Java Stream流的一些常用方法及其使用方式,希望对你有所帮助。
阅读全文