如何使用 Lambda 表达式填充 HashMap
How to populate a HashMap using a Lambda Expression
有一个class(SomeOrders
),其中有Id
、Summary
、Amount
等几个字段...
要求是从 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()));
有一个class(SomeOrders
),其中有Id
、Summary
、Amount
等几个字段...
要求是从 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()));