lambda表达式,stream流的使用
时间: 2024-09-13 14:01:08 浏览: 52
Lambda表达式是Java 8中引入的一个功能,它允许你以匿名函数的形式实现接口。Lambda表达式可以理解为简洁的、传递行为的参数的方式。Lambda表达式的基本语法是:参数 -> 表达式主体。例如:
```java
Comparator<String> comparator = (s1, s2) -> s1.compareTo(s2);
```
在这个例子中,`comparator` 是一个Lambda表达式实现的 `Comparator` 接口,它接收两个字符串参数并返回它们的比较结果。
Stream流是Java 8中引入的另一个新特性,它用于处理集合中元素的序列。Stream提供了函数式编程接口,可以进行过滤、映射、归约等操作。Stream使用管道的方式来处理数据,可以极大提高代码的可读性。
使用Stream流的基本流程包括三个步骤:
1. 创建Stream
2. 中间操作(Intermediate Operations),如 `filter`、`map`、`sorted` 等。
3. 终止操作(Terminal Operations),如 `collect`、`forEach`、`reduce` 等。
例如,对一个列表进行过滤和映射操作的代码如下:
```java
List<String> list = Arrays.asList("a", "b", "c", "d");
List<String> result = list.stream()
.filter(s -> s.startsWith("a"))
.map(String::toUpperCase)
.collect(Collectors.toList());
```
在这个例子中,首先通过 `stream()` 方法创建了一个流,然后使用 `filter` 方法筛选出所有以 "a" 开头的元素,接着用 `map` 方法将这些元素转换为大写形式,最后通过 `collect` 方法将流中的元素收集到新的列表中。
阅读全文