Java 循环嵌套映射-双重结果

Java 循环嵌套映射-双重结果,java,nested,Java,Nested,我是Java新手,试图理解嵌套映射,确切地说,我如何从循环中过滤不必要的结果 Map<String,Map<Integer,Integer>> add = new LinkedHashMap<>(); Map<Integer,Integer> add2 = new LinkedHashMap<>(); for(Map.Entry<String,Map<Integer,Integer>> view: add.en

我是Java新手,试图理解嵌套映射,确切地说,我如何从循环中过滤不必要的结果

Map<String,Map<Integer,Integer>> add = new LinkedHashMap<>();
Map<Integer,Integer> add2 = new LinkedHashMap<>();

for(Map.Entry<String,Map<Integer,Integer>> view: add.entrySet()){
    System.out.println("Name: " + view.getKey());

    for(Map.Entry<Integer,Integer>view2: add2.entrySet()){
        System.out.println("Number: "+ view2.getKey());
        System.out.println("ID:"+ view2.getValue());
        System.out.println("==================");
    }
}
我只想要以下结果:第一个循环中的名称1、编号1、不带编号2的ID1和ID2。。。 或者,如何在没有双倍数字和ID的情况下进行迭代

-->
当我写下3个名字,每个名字有3个数字,第一个是:

Name: name1

Number: 111
ID:1
===============
Number: 2222
ID:2
===============
Number: 3333
ID:3
===============
对其他人来说也是如此

Name: name2

    Number: 111
    ID:1
    ===============
    Number: 2222
    ID:2
    ===============
    Number: 3333
    ID:3
    ===============
应该是公正的

Name 1
Number: 111
ID:1
============

Name 2
Number: 222
ID:2
============

Name 3
Number: 333
ID:3

这就是在嵌套的
映射上迭代的方式:

Map<String,Map<Integer,Integer>> add = new LinkedHashMap<>();
for(String key : add.keySet()) {
    for(Integer key : add.get(key).keySet()) {
        // your code here
    }
}
Map add=newlinkedhashmap();
for(字符串键:add.keySet()){
for(整数键:add.get(键).keySet()){
//你的代码在这里
}
}

您错过了代码中的
add.get(key).keySet()
部分。

要了解迭代嵌套映射,请阅读以下内容

您可以使用方法迭代贴图中的键。
也请查看链接。

您能更具体一点吗?您在
add
中有什么值,在
add2
中有什么值,您的预期结果是什么?替换嵌套循环头中的
add2.entrySet()
=>
view.getValue().entrySet()
。投票以键入方式结束。姓名:姓名1号码:1234 ID:1========姓名:姓名2号码:2345 ID:2当我输入3个姓名时,每个姓名对应3个号码,对于第一个,我得到:Name:name1 Number:111 ID:1==========================================================================================Number:3333 ID:3=================================对于其他人,是相同的名称:name2 Number:111 ID:1=====================Number:2222 ID:2===============编号:3333 ID:3=====================应该只是名称1编号:111 ID:1它不是那样工作的:add.get(key).keySet(),我重复了关于迭代的其他信息,我做了,但仍然有相同的结果。
Map<String,Map<Integer,Integer>> add = new LinkedHashMap<>();
for(String key : add.keySet()) {
    for(Integer key : add.get(key).keySet()) {
        // your code here
    }
}