stream.mapToLong.collect()
时间: 2023-07-21 20:25:45 浏览: 201
`stream.mapToLong()` 方法返回一个 `LongStream` 对象,可以对其进行进一步的操作,例如聚合、过滤、排序等。而 `collect()` 方法是 Stream API 中的一个终止操作,用于将 Stream 中的元素收集到一个集合中。
在使用 `mapToLong()` 方法后,我们可以使用 `collect()` 方法将 `LongStream` 对象中的元素收集到一个集合中,例如 `List<Long>` 或者 `Set<Long>`。
下面是一个使用 `mapToLong()` 和 `collect()` 方法实现将一组订单中的总金额收集到一个 `List` 中的示例代码:
```java
List<Order> orders = getOrderList();
List<Long> totalAmounts = orders.stream()
.mapToLong(Order::getAmount)
.boxed() // 将 LongStream 转换成 Stream<Long>
.collect(Collectors.toList());
System.out.println(totalAmounts);
```
在上面的代码中,`orders` 是一个包含多个订单的 `List` 对象,`mapToLong(Order::getAmount)` 将每个订单的金额映射成一个 long 类型的值,`boxed()` 方法将 `LongStream` 对象转换成一个 `Stream<Long>` 对象,最后使用 `collect(Collectors.toList())` 方法将 `Stream<Long>` 中的元素收集到一个 `List<Long>` 中,并输出结果。
需要注意的是,由于 `mapToLong()` 方法返回的是一个 `LongStream` 对象,因此需要使用 `boxed()` 方法将其转换成 `Stream<Long>` 对象,然后才能使用 `collect()` 方法将元素收集到一个集合中。
阅读全文