如何使用 Lambda 表达式填充哈希映射

2022-09-04 05:51:49

有一个类 (),它只有很少的字段,如 、 、 等...SomeOrdersIdSummaryAmount

要求是从对象的输入中收集作为键和值。IdSummaryHashMapListSomeOrder

Java 8 之前的代码:

List<SomeOrder> orders = getOrders();
Map<String, String> map = new HashMap<>();
for (SomeOrder order : orders) {
    map.put(order.getId(), order.getSummary());
}

如何在Java 8中实现与Lambda表达式相同的效果?


答案 1

用:Collectors.toMap

orders.stream().collect(Collectors.toMap(SomeOrder::getID, SomeOrder::getSummary));

orders.stream().collect(Collectors.toMap(o -> o.getID(), o -> o.getSummary()));

答案 2