0

をHashMapに配置するときに<key,value>、キーがHashMapにすでに存在する場合、値は置き換えられます。しかし、キーの値自体がHashMapである場合、それはHashMapに置き換えられますか?

4

3 に答える 3

8

はい、交換されます。Map は他のオブジェクトへの参照のみを格納することに注意してください。

HashMap への参照をマップに配置すると、マップはこの HashMap への参照を保持します。

同じキーを使用して別の HashMap への参照を配置すると、最初に配置された HashMap への参照が新しい HashMap への参照に置き換えられます。オブジェクトの種類は問いません。常に同じように機能します。

于 2012-12-20T20:29:51.043 に答える
0

あなたの質問の言葉遣いは少し不透明ですが、 aHashMap<HashMap, Object>は完全に有効です(多少奇妙ですが)。その場合、次の場合:

HashMap map = new HashMap<HashMap<String, String>, String>();
HashMap a = new HashMap<String, String>();
HashMap b = new HashMap<String, String>();  //a.equals(b) == true

map.put(a, "foo");  //map.get(a) would now return "foo"
map.put(b, "bar");  //original entry is replaced, map.get(a) would now return "bar"
于 2012-12-20T21:08:35.353 に答える