如何使用 Lambda 表达式填充 HashMap

How to populate a HashMap using a Lambda Expression

有一个class(SomeOrders),其中有IdSummaryAmount等几个字段...

要求是从 SomeOrder 个对象的输入 List 中收集 Id 作为键和 Summary 作为 HashMap 的值。

之前的代码 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 表达式实现相同的功能?

使用Collectors.toMap

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

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