我将如何迭代嵌套的HashMap?
HashMap
设置如下:
HashMap<String, HashMap<String, Student>>
其中Student
是包含变量name
的对象。例如,如果我的HashMap看起来像这样(以下不是我的代码,它只是为了模拟hashmap的内容)
hm => HashMap<'S', Hashmap<'Sam', SamStudent>>
HashMap<'S', Hashmap<'Seb', SebStudent>>
HashMap<'T', Hashmap<'Thomas', ThomasStudent>>
我如何遍历所有单个字母键,然后遍历每个全名键,然后提取学生的姓名?
答案 0 :(得分:19)
for (Map.Entry<String, HashMap<String, Student>> letterEntry : students.entrySet()) {
String letter = letterEntry.getKey();
// ...
for (Map.Entry<String, Student> nameEntry : letterEntry.getValue().entrySet()) {
String name = nameEntry.getKey();
Student student = nameEntry.getValue();
// ...
}
}
答案 1 :(得分:12)
Java 8 lambdas和Map.forEach
使bkail's answer更简洁:
outerMap.forEach((letter, nestedMap) -> {
//...
nestedMap.forEach((name, student) -> {
//...
});
//...
});