迭代嵌套的hashmap

时间:2014-10-04 00:44:33

标签: java 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>>

我如何遍历所有单个字母键,然后遍历每个全名键,然后提取学生的姓名?

2 个答案:

答案 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) -> {
        //...
    });
    //...
});