通过嵌套HashMap迭代
问题描述:
我将如何去通过嵌套HashMap迭代?通过嵌套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>>
我怎么能在所有的单字母键的迭代然后每个全名键,然后拔出学生的名字?
答
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();
// ...
}
}
答
的Java 8个Lambda表达式和Map.forEach
使bkail's answer更简洁:
outerMap.forEach((letter, nestedMap) -> {
//...
nestedMap.forEach((name, student) -> {
//...
});
//...
});
完美和最好的代码用于遍历HashMaps这样的包含HashMap。谢谢布雷特 – vkrams 2017-03-11 23:59:50