2016-11-09 7 views
0

私はハッシュマップのハッシュマップを返すメソッドを持っている印刷HashMapのハッシュマップの:のMap.Entryまたはjava8

HashMap<String, HashMap<String, String>> mapofmaps = abcd(<String>, <Integer>); 

私は次のコード

for (Entry<String, HashMap<String, String>> entry : mapofmaps.entrySet()) { 
      String key = entry.getKey(); 
      System.out.println(key); 

     HashMap<String, String> value = entry.getValue(); 
      System.out.println(key + "\t" + value); 
     } 

を使用して、外側ハッシュマップを印刷しようとしています私は内側の地図を反復したいと思います。 entryset変数はどこにありますか(???)。

for (Entry<String, HashMap<String, String>> entry : mapofmaps.entrySet()) { 
       String key = entry.getKey(); 
       System.out.println(key); 
    for(Entry<String, HashMap<String, String>> entry : ????.entrySet()){ 
      HashMap<String, String> value = entry.getValue(); 
       System.out.println(key + "\t" + value); 
      }} 

ハッシュマップを印刷するロジックが正しいですか?それとももっと良い方法がありますか?

+0

"私のロジックが正しいハッシュマップを印刷するためですか?"いいえ、そうではありません。内側のハッシュマップを繰り返し処理するときには、明らかに 'entry'の別の型が必要です(別の型のデータが入っているので)。 – talex

答えて

5

それは、あなたはそれ、これはjavaの8つのストリームとラムダ式を使用してもを行うことができ、あることを言及する価値がある

String key = innerEntry.getKey(); 
    String value = innerEntry.getValue(); 

を使用することができますentry.getValue().entrySet() ので

for(Entry<String, String> innerEntry : entry.getValue().entrySet()){ 

になります

HashMap<String, HashMap<String, String>> mapofmaps = new HashMap<>(); 

    HashMap<String,String> map1 = new HashMap<>(); 
    map1.put("map1_key1", "map1_value1"); 

    HashMap<String,String> map2 = new HashMap<>(); 
    map2.put("map2_key1", "map2_value1"); 

    mapofmaps.put("map1", map1); 
    mapofmaps.put("map2", map2); 

 // To print the keys and values 
    mapofmaps.forEach((K,V)->{     // mapofmaps entries 
     V.forEach((X,Y)->{      // inner Hashmap enteries 
      System.out.println(X+" "+Y);  // print key and value of inner Hashmap 
     }); 
    }); 

mapofmaps.forEach((K,V)これは、2つの入力を受け取り、ラムダ式は、キー(文字列)とバリュー(HashMapの)

V.forEach((X,Y)->{すなわち見込ん:これは、内側に適用されたようVを:前のforeachを通してフェッチされます)hashmapしたがって、KeyとValueの両方が文字列になります

ファーのリファレンスTHER読書:

関連する問題