Collect lines using the Multimap Collector

Is there any way to hide below using collectors?

List<String[]> lines = getLines(); Multimap<String,String> multimap = ArrayListMultimap.create(); lines.forEach(line -> multimap.put(line[0],line[1]); ); 
+5
source share
1 answer

You can use Multimaps.toMultimap collector:

 ListMultimap<String, String> multimap = lines.stream() .collect(Multimaps.toMultimap( l -> l[0], l -> l[1], ArrayListMultimap::create )); 

Or, if you do not need volatility, use the ImmutableListMultimap.toImmutableListMultimap collector:

 ListMultimap<String, String> multimap = lines.stream() .collect(toImmutableListMultimap(l -> l[0], l -> l[1])); 
+7
source

Source: https://habr.com/ru/post/1271005/


All Articles