簡體   English   中英

循環嵌套地圖-雙結果

[英]Loop Nested Maps - Double result

我是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("==================");
    }
}

Name1,1234和Name2,2345的結果為:

Name: Name1
Number: 1234
ID:1
Number: 2345
ID:2 
====================
Name: Name2
Number: 1234
ID:1 
Number: 2345
ID:2 

我只想要以下結果:名稱1,數字1,ID1不帶Number2和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

Map<String,Map<Integer,Integer>> add = new LinkedHashMap<>();
for(String key : add.keySet()) {
    for(Integer key : add.get(key).keySet()) {
        // your code here
    }
}

您錯過了add.get(key).keySet()部分。

要了解有關迭代嵌套映射的信息,請閱讀此文章迭代Java映射的更好方法

您可以使用Map.keySet()方法遍歷地圖中的鍵。 也請通過鏈接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM