2016-07-15 5 views
0
HashMap map= new HashMap(); 
System.out.println(map.put(101,"john"));//null 
System.out.println(map.put(101,"abhraham"));//john 

既存のキーを与えると、値を置き換えて古い値を返します。map.putAll()のオブジェクトの古い値を取得する方法は?

私はputAllを使用すれば、どうすれば古い値を取得できますか?

HashMap map2=new HashMap(); 
map2.put(101,"Lincoln"); 
System.out.println(map.putAll(map2));//runtime exception 

置き換えられた古い値をマップで使用したい場合は、

私は何をしなければならない古い値が必要な場合は、印刷部分を残してください。

+0

将来的にコードの書式を設定する方法については、https://stackoverflow.com/editing-helpをご覧ください。 'putAll'が' void'を返すので、*コンパイル時*の失敗を無視すれば、2回目のスニペットはランタイム例外を与えます。コンパイルされないコードを実行しようとしないでください。 –

答えて

1

古い値を返しますMap.put()を使用して、1度に1つずつを置き換えることができます。

HashMap oldValues = new HashMap(); 
map2.forEach((key, value) -> { 
    oldValues.put(key, map.put(key, value)); 
}); 
0

HashMap.putAll()方法は、あなたが例外を取得する理由であるボイド戻り値の型を持っています。 map2変数の各要素に対してHashMap.put()メソッドを呼び出し、個別に印刷するか、別のマップに配置してから内容を印刷するか、必要な操作を行う必要があります。

関連する問題