[英]Loop Nested Maps - Double result
I am new in Java, and trying to understand Nested Maps, exactly how I can filter unnecessary result from loop. 我是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("==================");
}
}
The result with:Name1,1234 and Name2,2345 is: Name1,1234和Name2,2345的结果为:
Name: Name1
Number: 1234
ID:1
Number: 2345
ID:2
====================
Name: Name2
Number: 1234
ID:1
Number: 2345
ID:2
I want only result for: name 1, number 1, ID1 without Number2 and ID2 on first loop... Or how to iterate this without double number and ID? 我只想要以下结果:名称1,数字1,ID1不带Number2和ID2在第一个循环上...或如何在没有双数字和ID的情况下进行迭代?
--> When i put 3 Names, with 3 numbers for each one name, for the first One i get: ->当我输入3个名字时,每个名字带有3个数字,对于第一个名字,我得到:
Name: name1
Number: 111
ID:1
===============
Number: 2222
ID:2
===============
Number: 3333
ID:3
===============
and for others is the same 对于其他人也一样
Name: name2
Number: 111
ID:1
===============
Number: 2222
ID:2
===============
Number: 3333
ID:3
===============
should be just 应该只是
Name 1
Number: 111
ID:1
============
Name 2
Number: 222
ID:2
============
Name 3
Number: 333
ID:3
This is how you iterate over a nested Map
: 这是您遍历嵌套Map
:
Map<String,Map<Integer,Integer>> add = new LinkedHashMap<>();
for(String key : add.keySet()) {
for(Integer key : add.get(key).keySet()) {
// your code here
}
}
You missed the add.get(key).keySet()
part in your code. 您错过了add.get(key).keySet()
部分。
to know about iterating nested map read this A better way to iterate java maps 要了解有关迭代嵌套映射的信息,请阅读此文章迭代Java映射的更好方法
You can iterate over the keys in a map using the Map.keySet() method. 您可以使用Map.keySet()方法遍历地图中的键。 Also go through this link. 也请通过此链接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.