stream 方法及使用
时间: 2023-09-06 13:10:47 浏览: 91
Stream API 是 Java 8 引入的一个功能强大且易于使用的工具,用于处理集合数据。它提供了一种函数式编程的方式来操作集合,可以通过一系列的中间操作和一个终端操作来处理数据。下面是一些常用的 Stream 方法及其使用示例:
1. filter(Predicate):根据指定的条件过滤集合中的元素。
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> evenNumbers = numbers.stream()
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
```
上述代码使用 filter 方法过滤出集合中的偶数,并将结果收集到一个新的集合中。
2. map(Function):将集合中的每个元素按照指定的方式进行转换。
```java
List<String> words = Arrays.asList("hello", "world");
List<Integer> wordLengths = words.stream()
.map(String::length)
.collect(Collectors.toList());
```
上述代码使用 map 方法将每个字符串转换为其长度,并将结果收集到一个新的集合中。
3. forEach(Consumer):对集合中的每个元素执行指定的操作。
```java
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.stream()
.forEach(System.out::println);
```
上述代码使用 forEach 方法打印出集合中的每个元素。
4. sorted():对集合中的元素进行排序。
```java
List<Integer> numbers = Arrays.asList(5, 2, 3, 1, 4);
List<Integer> sortedNumbers = numbers.stream()
.sorted()
.collect(Collectors.toList());
```
上述代码使用 sorted 方法对集合中的元素进行排序,并将结果收集到一个新的集合中。
5. findFirst():查找集合中符合指定条件的第一个元素。
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
Optional<Integer> firstEvenNumber = numbers.stream()
.filter(n -> n % 2 == 0)
.findFirst();
```
上述代码使用 findFirst 方法找到集合中的第一个偶数。
这些只是 Stream API 中的一部分方法,还有许多其他方法可用于处理集合数据。你可以根据具体的需求选择适合的方法来进行操作。
阅读全文