迴圈裡map不被重複覆蓋問題
阿新 • • 發佈:2019-02-01
最近做一個需求時遇到一個小問題,java中想要生成多個map並且放到一個list中,在for迴圈裡去put,結果發現前面所有的map都被最後的一個覆蓋了。最後被一個大哥一句話點醒,用同一個map始終會被覆蓋,必須生成不同map去put。總結了下大概就兩種方法。
。
1.當for迴圈結束時,重新new一個map,例:
Map map = new HashMap();
for(){
map.put();
map.put();
map=new HashMap();
}
2.重寫HashMap的put方法,例:
class MyHashMap extends HashMap { @Override public Object put(Object key, Object value) { //如果已經存在key,不覆蓋原有key對應的value if(!this.containsKey(key)) return super.put(key, value); return null; } } 最終問題算是解決了,本人小白,真切感受與部門大哥差距之大,僅在此記錄下日常遇到的問題