How to populate a HashMap using a lambda expression

There is one class ( SomeOrders ) that has several fields, such as Id , Summary , Amount , etc.

SomeOrder collect Id as the key and Summary as the value for the HashMap from the input List of SomeOrder objects.

Code in before Java 8:

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

How to achieve the same with lambda expression in Java 8?

+9
java dictionary hashmap lambda java-8
source share
1 answer

Use Collectors.toMap :

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

or

 orders.stream().collect(Collectors.toMap(o -> o.getID(), o -> o.getSummary())); 
+24
source share

All Articles