中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

java中常用集合的使用方法-創(chuàng)新互聯(lián)

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)java中常用集合的使用方法,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

渭南ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

在java中集合主要分為:List,Set,Map三種,其中List與Set是繼承自Collection,而Map不是。

List與Set的區(qū)別:List中的元素有存放順序,并且可以存放重復(fù)元素,檢索效率高,插入刪除效率低,Set沒有存放順序,而且不可以存放重復(fù)元素,后來的元素會把前面重復(fù)的元素替換掉,檢索效率低,插入刪除效率高。(Set存儲位置是由它的HashCode碼決定的,所以它存儲的對象必須有equals()方法,而且Set遍歷只能用迭代,因?yàn)樗鼪]有下標(biāo)。)

1、最常用的集合:ArrayList

特點(diǎn):ArrayList集合中元素存儲的位置是連續(xù)的,所以查詢起來會比較快捷,但是執(zhí)行插入刪除操作會比較麻煩一點(diǎn),會引起其他元素位置的變化。

注意:list中存儲的是對象的引用,而不是對象本身。如果不清楚這一點(diǎn)會在這里有個(gè)坑,例如:

有人為了節(jié)省優(yōu)化代碼,節(jié)省虛擬機(jī)內(nèi)存會這么寫代碼:

List<List<String>> list=new ArrayList<>();
List<String> list2=new ArrayList<>();
for(int i=0;i<10;i++){
    list2.add(""+i);    
    list.add(list2);
    list2.clear();
}

這樣寫雖然可以一個(gè)對象重復(fù)使用,但是,list存儲的是對象的引用,當(dāng)list2.clear();的時(shí)候,list中的list2也會clear,這樣最后得到的就只能是一堆空的集合了。

2、與最常用集合相反的集合:LinkedList

LinkedList與ArrayList是互補(bǔ)的,所以ArrayList的優(yōu)點(diǎn)就是LinkedList的缺點(diǎn),ArrayList的缺點(diǎn)就是LinkedList的優(yōu)點(diǎn)。

特點(diǎn):LinkedList中元素位置是任意的,所以執(zhí)行插入刪除操作效率較高,查詢效率較低。

3、與一般集合都相反的集合:Vector

為什么說它與一般集合都相反呢?因?yàn)樗且环N老的動態(tài)數(shù)組,很多方法都用synchonized修飾,所以它是線程安全得,而一般集合是線程不安全得。

特點(diǎn):多個(gè)線程同時(shí)訪問不會發(fā)生不確定的結(jié)果,但是它的效率會比較低,如果要考慮線程安全的話可以用它。

4、Set中最常用的集合:HashSet

在用Set集合的時(shí)候我?guī)缀跤玫亩际荋ashSet,HashSet是使用Hash表實(shí)現(xiàn)的,集合里面的元素是無序得,可以有null值,但是不能有重復(fù)元素。

特點(diǎn):因?yàn)橄嗤脑鼐哂邢嗤膆ashCode,所以不能有重復(fù)元素

5、Set中第二常用的集合:TreeSet

TreeSet是用二叉樹結(jié)構(gòu)實(shí)現(xiàn)的集合

特點(diǎn):集合中的元素是有順序得,不允許放入null,同樣不能放入重復(fù)元素。

6、第二常用的集合:HashMap

經(jīng)常遇到需要使用鍵值對存儲的場景,而HashMap是用得最多的一種鍵值對存儲的集合。

特點(diǎn):HashMap允許空鍵值,并且它是非線程安全的,所以插入、刪除和定位元素會比較快。

7、一些不太常用的Map集合:TreeMap,HashTable

TreeMap是基于紅黑樹實(shí)現(xiàn)的,適用于按自然順序火茲定于順序遍歷key。

HashTable是基于HashCode實(shí)現(xiàn)的,但它是線程安全的,所以會比HashMap效率低,而且不允許null值。

上述就是小編為大家分享的java中常用集合的使用方法了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

本文名稱:java中常用集合的使用方法-創(chuàng)新互聯(lián)
網(wǎng)頁URL:http://www.rwnh.cn/article28/csoojp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、Google、網(wǎng)站制作微信公眾號、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
扎囊县| 西昌市| 晋城| 石柱| 维西| 新沂市| 腾冲县| 玉田县| 隆昌县| 泰和县| 江津市| 尚义县| 江都市| 额济纳旗| 墨竹工卡县| 沈丘县| 勐海县| 南城县| 资阳市| 合肥市| 大同县| 凌海市| 项城市| 都匀市| 桂阳县| 海城市| 霍林郭勒市| 子长县| 镇宁| 准格尔旗| 巴中市| 黔西| 宣城市| 博罗县| 靖江市| 铁岭市| 丰县| 广南县| 商城县| 双辽市| 察哈|