list.stream().map().collect()订单操作
时间: 2023-05-24 08:06:18 浏览: 115
JDK8通过Stream 对List,Map操作和互转的实现
5星 · 资源好评率100%
这是Java 8的Stream API的常见用法之一,将列表中的元素映射为其他对象,然后将结果集合到一个新的列表或新的集合类型(如Set或Map)中。这通常用于对订单或数据的转换或筛选。
例如,假设我们有以下订单类:
```
public class Order {
private String id;
private List<Item> items;
private double total;
// getters and setters
}
public class Item {
private String name;
private int quantity;
private double price;
// getters and setters
}
```
我们可以编写以下代码将所有的订单项的价格加倍:
```
List<Order> orders = ...;
List<Double> newPrices = orders.stream()
.flatMap(order -> order.getItems().stream()) // flatMap is used to convert a Stream<Order> to a Stream<Item>
.map(item -> item.getPrice() * 2)
.collect(Collectors.toList()); // Collectors.toList() is used to collect the doubles into a List<Double>
```
这将最终得到一个包含所有订单项价格加倍后的新价格的列表。
阅读全文