Java集合Map的clear與new Map區(qū)別詳解
對(duì)于clear與new Map的區(qū)別。我們首先來看一個(gè)例子,本例子是我在實(shí)際開發(fā)中遇到的,需求就是講map放入到list中,說白了就是list轉(zhuǎn)map,有兩種實(shí)現(xiàn)方式,分別是:
// 方案一 Map<Integer, Integer> map1 = new HashMap<>(); List<Map<Integer, Integer>> list1 = new ArrayList<>(); for (int i = 0; i < 5; i++) { map1.clear(); map1.put(i, i * 2); list1.add(map1); }
// 方案二 Map<Integer, Integer> map2 = null; List<Map<Integer, Integer>> list2 = new ArrayList<>(); for (int i = 0; i < 5; i++) { map2 = new HashMap<>(); map2.put(i, i * 2); list2.add(map2); }
大家可以猜猜上面代碼執(zhí)行的結(jié)果。與你們猜想的一致么。
解釋:
方案一,我們只是把map.clear了(查看clear的源碼,clear的作用是把map里每個(gè)屬性設(shè)置為null,并把map的長(zhǎng)度設(shè)置為0)。并沒有銷毀,map的指針還是存儲(chǔ)在list里面了,所以后面新add到list里面的東西都是同一個(gè)map,都是指向同一個(gè)map,list里面存儲(chǔ)的是map的指針;
方案二,不用我說了,每次創(chuàng)建新的map,每次都是不同的指針,
所以編碼的時(shí)候要注意了。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
IDEA使用SpringAssistant插件創(chuàng)建SpringCloud項(xiàng)目
IDEA 功能強(qiáng)大,可以用來高效的開發(fā)應(yīng)該程序。它還支持第三方插件、用戶可以根據(jù)需要添加自己喜歡的插件。下面介紹如何使用 IDEA 創(chuàng)建 Spring Cloud 項(xiàng)目2021-06-06在SpringBoot中如何利用Redis實(shí)現(xiàn)互斥鎖
當(dāng)我們利用Redis存儲(chǔ)熱點(diǎn)數(shù)據(jù)時(shí),突然就過期失效或者被刪除了,導(dǎo)致大量請(qǐng)求同時(shí)訪問數(shù)據(jù)庫,增加了數(shù)據(jù)庫的負(fù)載,為減輕數(shù)據(jù)庫的負(fù)載我們利用互斥鎖,本文重點(diǎn)介紹在SpringBoot中如何利用Redis實(shí)現(xiàn)互斥鎖,感興趣的朋友一起看看吧2023-09-09java實(shí)現(xiàn)OpenGL ES紋理映射的方法
這篇文章主要介紹了java實(shí)現(xiàn)OpenGL ES紋理映射的方法,以實(shí)例形式較為詳細(xì)的分析了紋理映射的實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-06-06SpringBoot編譯target目錄下沒有resource下的文件踩坑記錄
這篇文章主要介紹了SpringBoot編譯target目錄下沒有resource下的文件踩坑記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08IDEA插件之mybatisx插件使用教程(超詳細(xì)!)
MybatisX 是一款基于IDEA的快速開發(fā)插件,為效率而生,下面這篇文章主要給大家介紹了關(guān)于IDEA插件之mybatisx插件使用的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06Java JDK11基于嵌套的訪問控制的實(shí)現(xiàn)
這篇文章主要介紹了Java JDK11基于嵌套的訪問控制的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-01-01SpringBoot實(shí)現(xiàn)滑塊驗(yàn)證碼驗(yàn)證登陸校驗(yàn)功能詳解
驗(yàn)證碼作為一種自然人的機(jī)器人的判別工具,被廣泛的用于各種防止程序做自動(dòng)化的場(chǎng)景中。傳統(tǒng)的字符型驗(yàn)證安全性已經(jīng)名存實(shí)亡的情況下,各種新型的驗(yàn)證碼如雨后春筍般涌現(xiàn),今天給大家分享一篇SpringBoot實(shí)現(xiàn)滑塊驗(yàn)證碼2022-09-09