Имеем:
Map
Необходимо максимально элегантно преобразовать его в List
Например, было:
[
a=[obj1,obj2,obj3],
b=[obj4,obj5],
c=[obj6,obj7]
]
хочу получить:
[
Pair{a,obj1},
Pair{a,obj2},
Pair{a,obj3},
Pair{b,obj4},
Pair{b,obj5},
Pair{c,obj6},
Pair{c,obj7}
]
Ответ
Можно с помощью операции flatMap (вместо Pair - AbstractMap.SimpleEntry), она принимает функцию, возвращающую Stream и встраивает элементы возвращенного потока в основной:
Map
map.put( "a", Arrays.asList( "obj1", "obj2", "obj3" ) );
map.put( "b", Arrays.asList( "obj4", "obj5" ) );
map.put( "c", Arrays.asList( "obj6", "obj7" ) );
System.out.println( map );
List
System.out.println( list );
Комментариев нет:
Отправить комментарий