2017-03-05 4 views
-1

2つのハッシュマップのデータをコンソールに出力しようとしていますが、そこに1つしか描かれていません。ここでのコードサンプルは次のとおりです。だから、Intelij ideaハッシュマップがコンソールに出力されます

public class HashMapsmathces { 
    public static void main(String[] args) throws Exception { 

    Map<String, Object> hm1 = new HashMap<>(); 

    hm1.put("id", 1); 
    hm1.put("sku","qazwsx"); 
    hm1.put("price", 11); 

    printMaps(hm1); 

    Map<String, Object> hm2 = new HashMap<>(); 

    hm1.put("id", 2); 
    hm1.put("sku","qazwsx"); 
    hm1.put("price", 13); 

    printMaps(hm2); 
} 

public static void printMaps(Map<String, Object> map) 
{ 

    for (Map.Entry<String, Object> pair : map.entrySet()) 
    { 
     String key = pair.getKey(); 
     String value = pair.getValue().toString(); 
     System.out.println(key + " : " + value); 
    } 
    } 
} 

、私は「ファイル名を指定して実行」を押したときにのみ、hm1がコンソールにプッシュされます。なぜ私はそれほど確かではありません。ここで

スクリーンショットだけでなく enter image description here

感謝。

+0

hm2が空であるため、hm2マップの宣言後に値をhm1に再割り当てしています。 Pfbの答え –

答えて

1

実際に両方のマップを印刷しています。ただし、hm2は空です。

+0

ジョー、ありがとう。 私はそのタイプミスに気付かなかった。おそらく、私はそのような質問をする前に、コードを二重にチェックするべきです。 –

+2

デバッガで時間を費やすことも、スタックオーバーフローになる前に便利です。 –

4

hm2が空であるため、hm2マップの宣言後に値をhm1に再割り当てしています。

public class HashMapsmathces { 
    public static void main(String[] args) throws Exception { 

    Map<String, Object> hm1 = new HashMap<>(); 

    hm1.put("id", 1); 
    hm1.put("sku","qazwsx"); 
    hm1.put("price", 11); 

    printMaps(hm1); 

    Map<String, Object> hm2 = new HashMap<>(); 

    hm2.put("id", 2); 
    hm2.put("sku","qazwsx"); 
    hm2.put("price", 13); 

    printMaps(hm2); 
} 

public static void printMaps(Map<String, Object> map) 
{ 
    //напишите тут ваш код 
    for (Map.Entry<String, Object> pair : map.entrySet()) 
    { 
     String key = pair.getKey(); 
     String value = pair.getValue().toString(); 
     System.out.println(key + " : " + value); 
    } 
    } 
} 
関連する問題