У меня есть следующий класс:
public class Foo {
private String areaName;
private String objectName;
private String lineName;
}
Теперь я хочу преобразовать List<Foo>
в Map<String, Map<String, List<String>>>
. Я нашел этот ответ , который помог мне разработать следующий код:
Map<String, Map<String, List<String>>> testMap = foos.stream().collect(Collectors.groupingBy(e -> e.getAreaName(),
Collectors.groupingBy(e -> e.getObjectName(), Collectors.collectingAndThen(Collectors.toList(),
e -> e.stream().map(f -> f.getLineName())))));
Единственная проблема с этим кодом - это часть, в которой он должен преобразовываться в List<String>
. Я не мог найти способ конвертировать Foo
в List
в этой части.
Другой подход, который приводит к Map<String, Map<String, List<Foo>>>
:
Map<Object, Map<Object, List<Foo>>> testMap = ventures.stream().collect(Collectors.groupingBy(e -> e.getAreaName(),
Collectors.groupingBy(e -> e.getObjectName(), Collectors.toList())));
Что мне нужно изменить, чтобы получить Map<String, Map<String, List<String>>>
от List<Foo>
?