stream api例子
时间: 2023-08-05 20:07:36 浏览: 36
下面是一个简单的 Stream API 示例,假设我们有一个整数列表,需要对其中的偶数进行平方并输出:
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
numbers.stream()
.filter(n -> n % 2 == 0) // 过滤偶数
.map(n -> n * n) // 平方
.forEach(System.out::println); // 输出结果
```
运行以上代码,输出结果为:
```
4
16
36
```
上面的代码首先将整数列表转换为一个 Stream 对象,然后使用 `filter()` 方法过滤出偶数,再使用 `map()` 方法平方,最后使用 `forEach()` 方法输出结果。
这段代码的运行过程是这样的:对于每个元素,首先判断是否为偶数,如果是则进行平方操作,最后输出结果。使用 Stream API,我们可以通过链式调用来表达这个过程,使得代码更加简洁和易于理解。
相关问题
jdk17 Stream API例子
以下是 JDK 17 Stream API 的一个例子:
假设有一个 List<Integer> 类型的列表,我们要筛选出其中大于 5 的元素,并将它们加倍后求和。可以使用 Stream API 来实现:
```java
List<Integer> list = List.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
int sum = list.stream()
.filter(num -> num > 5) // 筛选大于 5 的元素
.mapToInt(num -> num * 2) // 将元素加倍
.sum(); // 求和
System.out.println(sum); // 输出结果为 84 (6*2 + 7*2 + 8*2 + 9*2 + 10*2 = 84)
```
以上代码使用了 Stream API 的 filter()、mapToInt() 和 sum() 方法,分别对列表进行了筛选、加倍和求和操作。这个例子展示了 Stream API 的一些强大的功能,如链式调用和函数式编程。
Stream API的使用
Stream API是Java 8中提供的一种处理集合数据的工具,它可以让我们通过流式操作来处理数据,提高代码的简洁性和可读性。使用Stream API,我们可以实现对集合数据的筛选、转换、聚合等操作。
Stream API的使用包括以下几个步骤:
1. 获取一个集合对象,可以是List、Set、Map等集合类型。
2. 调用集合对象的stream()方法,将集合转换为一个流对象。
3. 对流对象进行中间操作,如过滤、映射、排序等操作,这些操作不会改变原有数据,只是产生一个新的流对象。
4. 对流对象进行终端操作,如forEach、reduce、collect等操作,这些操作会触发流的处理,产生最终结果。
以下是一个使用Stream API对List集合进行筛选和聚合的示例代码:
```java
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// 筛选出偶数
List<Integer> evenList = list.stream().filter(i -> i % 2 == 0).collect(Collectors.toList());
// 计算偶数的平均值
double average = evenList.stream().mapToInt(Integer::intValue).average().getAsDouble();
System.out.println("偶数列表:" + evenList);
System.out.println("偶数平均值:" + average);
```
输出结果:
```
偶数列表:[2, 4, 6, 8, 10]
偶数平均值:6.0
```
在这个例子中,我们首先创建一个包含1到10的整数列表,然后使用stream()方法将其转换为一个流对象。接着,我们使用filter()方法筛选出列表中的偶数,并使用collect()方法将结果收集到一个新的List对象中。最后,我们使用mapToInt()方法将List中的元素转换为int类型,并使用average()方法计算平均值。