【发布时间】:2018-09-22 18:48:58
【问题描述】:
我有List<Person>,其中Person 如下。
class Person {
String personId;
LocalDate date;
String type;
// getters & setters
}
我正在尝试将其转换为List<Person> 到Map<String, Map<LocalDate,List<Person>>>,其中外部映射的键是personId,内部映射的键是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);
}
【问题讨论】:
-
你应该解释你的想法。为什么在循环内声明
innerList?为什么innerMap声明在外面?为什么outerMap也在外面声明?
标签: java list collections java-8 hashmap