java Stream
时间: 2023-10-25 22:58:17 浏览: 106
Java Stream是Java 8引入的一个功能强大且易于使用的API,用于对集合(Collection)进行处理和操作。它提供了一种函数式编程风格的方式来处理数据,可以简化代码并提高效率。
Stream可以用于对集合进行过滤、映射、排序、聚合等操作,而无需编写显式的循环。它可以在内部处理数据,并且可以并行执行操作以提高性能。
以下是一些常用的Stream操作:
1. 过滤(Filtering):使用`filter`方法根据指定条件过滤集合中的元素。
```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. 映射(Mapping):使用`map`方法将集合中的元素映射为另一种类型。
```java
List<String> names = Arrays.asList("John", "Mary", "Alice");
List<Integer> nameLengths = names.stream()
.map(String::length)
.collect(Collectors.toList());
```
3. 排序(Sorting):使用`sorted`方法对集合中的元素进行排序。
```java
List<Integer> numbers = Arrays.asList(5, 3, 1, 4, 2);
List<Integer> sortedNumbers = numbers.stream()
.sorted()
.collect(Collectors.toList());
```
4. 聚合(Aggregating):使用`reduce`方法对集合中的元素进行聚合操作。
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream()
.reduce(0, Integer::sum);
```
5. 并行处理(Parallel Processing):使用`parallel`方法将Stream转换为并行流,以并行执行操作。
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.parallelStream()
.reduce(0, Integer::sum);
```
这只是Stream API的一小部分功能,还有更多强大的操作和组合方式可以进行。您可以根据需要使用Stream来处理和操作集合数据,以提高代码简洁性和可读性。
阅读全文