web-dev-qa-db-ja.com

ラムダ式を使用してHashMapにデータを入力する方法

1つのクラス(SomeOrders)があり、IdSummaryAmountなどのフィールドはほとんどありません。

要件は、Idオブジェクトの入力Summaryから、キーとしてHashMapを収集し、値としてListSomeOrderに収集することです。

前のコード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式で同じことを実現するにはどうすればよいですか?

11

使用する Collectors.toMap

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

または

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