Transform a set into a map using the current lambda API

Marcos Antonio marcos_antonio_ps at hotmail.com
Tue Mar 26 14:54:11 PDT 2013


Thank you.

________________________________
> Date: Wed, 27 Mar 2013 01:07:04 +0430 
> Subject: Re: Transform a set into a map using the current lambda API 
> From: ali.ebrahimi1781 at gmail.com 
> To: marcos_antonio_ps at hotmail.com 
> CC: lambda-dev at openjdk.java.net 
> 
> Hi, 
> another solution with collect method: 
> 
> names = properties.stream().collect(HashMap<String, Property>::new , ( 
> m ,p)-> {m.put(p.name<http://p.name>,p); } ,( m , n) -> {m.putAll(n); 
> }); 
> 
> Ali Ebrahimi 
> On Wed, Mar 27, 2013 at 12:43 AM, Ali Ebrahimi 
> <ali.ebrahimi1781 at gmail.com<mailto:ali.ebrahimi1781 at gmail.com>> wrote: 
> Hi, 
> this is an ugly solution: 
> 
> Map<String, Property> names = properties.stream().reduce(new 
> HashMap<>(), ( u, t) -> { 
> u.put(t.name<http://t.name>, t); 
> return u; 
> }, (m, n) -> { 
> m.putAll(n); 
> return m; 
> }); 
> 
> 
> 
> Ali Ebrahimi 
> 
> On Tue, Mar 26, 2013 at 10:48 PM, Marcos Antonio 
> <marcos_antonio_ps at hotmail.com<mailto:marcos_antonio_ps at hotmail.com>> 
> wrote: 
> 
> Hello! 
> 
> Suppose this simple POJO: 
> 
> public class Property 
> { 
> public String name; 
> public Object value; 
> @Override 
> public boolean equals(Object obj) 
> { 
> if (this == obj) 
> { 
> return true; 
> } 
> if (obj == null || getClass() != obj.getClass()) 
> { 
> return false; 
> } 
> 
> Property another = (Property) obj; 
> return name.equals(another.name<http://another.name>); 
> } 
> @Override 
> public int hashCode() 
> { 
> return name.hashCode(); 
> } 
> } 
> 
> and a set of them: 
> 
> Set<Property> properties = ... 
> 
> using the current lambda API, what's the easiest way to transform this set 
> in a map 
> 
> Map<String, Property> names = ... 
> 
> where the map key is the name field of the Property object and the map value 
> is the Property object itself? 
> 
> Thank you. 
> 
> Marcos 
> 
> 
>  		 	   		  


More information about the lambda-dev mailing list