我有 List<Person>
其中 Person
如下所示。
class Person {
String personId;
LocalDate date;
String type;
// getters & setters
}
我正在尝试将其转换为 List<Person>
至 Map<String, Map<LocalDate,List<Person>>>
外部 map 的键是 personId
内部 map 的关键是date
我不知道如何实现这一目标。
到目前为止,已经尝试过类似下面的方法。也对 Java 8 解决方案开放。
Map<String,Map<LocalDate,List<Person>>> outerMap = new HashMap<>();
Map<LocalDate,List<Person>> innerMap = new HashMap<>();
for(Person p : list) {
List<Person> innerList = new ArrayList<>();
innerList.add(p);
innerMap.put(p.getDate(), innerList);
outerMap.put(p.getPersonId(), innerMap);
}
最佳答案
list.stream()
.collect(Collectors.groupingBy(
Person::getPersonId,
Collectors.groupingBy(
Person::getDate
)));
关于java - List<Object> 到 Map<String, Map<String,List<Object>>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49799555/