2016-10-04 12 views
-2

ハッシュマップのリストのハッシュマップを反復処理します。例えばJava - ハッシュマップのリストのハッシュマップを反復処理する方法

、私はこのマップを反復処理するにはどうすればよい

HashMap <String, List <HashMap<String, String> > >

解決策を見つけるのを手伝ってください。

+1

は、いくつかのJavaコードを記述します。 –

+0

ネストされた構造の繰り返し=ネストされたループ – 4castle

+0

しないでください。このようなデータ構造を持っている場合は、設計に問題があります。 – Raedwald

答えて

0

あなたはおそらくあなたのデザインを見てください。これは、より簡単な方法で構造化できるようなものです。このコレクションをクラスに分割することを検討してください。 しかし、今すぐに変更できない(時間がない)場合は、手を差し上げます。

最も簡単な方法は、いくつかの段階にまで反復を破るために、おそらくです:

  1. 反復内部ハッシュマップ
  2. 以上の内部ハッシュマップ
の内容を反復
  • リストを反復処理します

    基本コードは次のとおりです。

    for(List<HashMap<String, String>> list : outer.values()) { 
        for(HashMap<String, String> map : list) { 
         for(String value : map.values()) { 
          //Do something 
         } 
        } 
    } 
    
    0

    マップの名前を付けてください。

    HashMap<String, List<HashMap<String, String>>> map; //I'll assume it is initialized and filled with something. 
    
    for (String key : map.keySet()) { 
        for (HashMap<String, String> map2 : map.get(key)) { 
         for (String key2 : map2.keySet()) { 
          //do something 
         } 
        } 
    } 
    

    別のアプローチは、コレクションを介して、ネストされたループを使用することである。

    for (List<HashMap<String, String>> list : map.values()) { 
        for (HashMap<String, String> map2 : list) { 
         for (String veryInnerValue : map2.values()) { 
          //do something 
         } 
        } 
    } 
    

    少し異なります。値の鍵を知る必要がない場合は、2番目の方が良いでしょう。

    0

    キーと各マップの値を知っておく必要がある場合:

    Map<String, List<HashMap<String, String>>> myMap = new HashMap<String, List<HashMap<String, String>>>(); 
    
    // loop for first map 
    for (Entry<String, List<HashMap<String, String>>> myMapEntry : myMap.entrySet()) { 
        System.out.println("myMap entry key" + myMapEntry.getKey() + ", key "); 
    
        // loop for list (value of entry) 
        for (HashMap<String, String> valueOfList : myMapEntry.getValue()) { 
    
         // loop for second map     
         for (Entry<String, String> entryOfMapOfList : valueOfList.entrySet()) { 
          System.out.println("key " + entryOfMapOfList.getKey() + " value " + entryOfMapOfList.getValue()); 
         } 
        } 
    } 
    
    関連する問題