當我使用.putAll()
時,另一個.putAll()
會覆蓋地圖的內容嗎? 我的地圖是否會包含SomeOfMyObjects和SomeOfMyObjects?映射putAll覆蓋或增加?
Map<MyObject> blah = new HashMap<>();
blah.putAll('SomeOfMyObjects')
blah.putAll('SomeOfMyObjects')
謝謝!
當我使用.putAll()
時,另一個.putAll()
會覆蓋地圖的內容嗎? 我的地圖是否會包含SomeOfMyObjects和SomeOfMyObjects?映射putAll覆蓋或增加?
Map<MyObject> blah = new HashMap<>();
blah.putAll('SomeOfMyObjects')
blah.putAll('SomeOfMyObjects')
謝謝!
將所有從指定映射到此地圖(可選操作)的映射。此調用的效果等同於在此映射上爲指定映射中的每個從關鍵字k到值v的映射調用put(k,v)的效果。
this call is equivalent to that of calling put(k, v)
將指定值與此映射(可選操作)指定的鍵。如果映射先前包含該鍵的映射,則舊值由指定值替換。 (A地圖米據說含有一個密鑰k的映射當且僅當m.containsKey(K)將返回true。)
所以它永遠不會ovverides
,只是前進,按照put
方法的行爲。
根據文檔: http://docs.oracle.com/javase/6/docs/api/java/util/Map.html#putAll(java.util.Map)它只是添加地圖,而不是覆蓋內容。
它的作用就像在參數圖中爲每個條目調用「put」一樣,因此它添加了保留地圖中已有的任何東西。如果再次添加相同的密鑰,則其值將被覆蓋。 putAll會嘗試通過首先在內部擴展映射以適應新數據來優化批量添加,以避免中間調整大小/重新哈希操作。
嘗試一下,你就會知道。這比任何可能的答案都好。 – Maroun
的確,我需要在測試中覆蓋它! – zeroke