【发布时间】:2019-06-11 06:16:01
【问题描述】:
我有一个多级地图如下:
Map<String, Map<String, Student> outerMap =
{"cls1" : {"xyz" : Student(rollNumber=1, name="test1")},
"cls2" : {"abc" : Student(rollNumber=2, name="test2")}}
现在我想从上面的地图构造一个字符串列表,如下所示:
["In class cls1 xyz with roll number 1",
"In class cls2 abc with roll number 2"]
我写了如下,但这不起作用,在这种情况下,我也浏览了帖子:Java 8 Streams - Nested Maps to List,但没有太多想法。
List<String> classes = outerMap.keySet();
List<String> studentList = classes.stream()
.map(cls ->
outerMap.get(cls).keySet().stream()
.map(student -> "In class "+ cls +
student + " with roll number " +
outerMap.get(cls).get(student).getRollNum() +"\n"
).collect(Collectors.toList());
【问题讨论】: