java集合主要有3種:set(集)、list(列表)和map(映射)。
一、List集合:(有序,元素可以重復(fù))
List里存放的對象是有序的,同時也是可以重復(fù)的,List關(guān)注的是索引,擁有一系列和索引相關(guān)的方法,查詢速度快。因為往list集合里插入或刪除數(shù)據(jù)時,會伴隨著后面數(shù)據(jù)的移動,所有插入刪除數(shù)據(jù)速度慢。
1、ArrayList集合:
1)、底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組,查找快,增刪慢。
立即學(xué)習(xí)“Java免費學(xué)習(xí)筆記(深入)”;
2)、線程不安全,效率高
2、Vector集合:
1) 底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組,查詢快,增刪慢
2)線程安全,效率低
3、LinkedList集合:
1) 底層數(shù)據(jù)結(jié)構(gòu)是鏈表,查詢慢,增刪快
2)線程不安全,效率高
二、Set集合(元素不可重復(fù),元素唯一)
Set里存放的對象是無序,不能重復(fù)的,集合中的對象不按特定的方式排序,只是簡單地把對象加入集合中。
1、Hashset集合:
1) 底層數(shù)據(jù)結(jié)構(gòu)是哈希表,哈希表依賴兩個方法hascode ()和equals()方法
2)兩個方法的執(zhí)行順序:
首先判斷hascode()值是否相同
是:繼續(xù)執(zhí)行equals()方法,看其返回值
是true:說明元素重復(fù),不添加
是false:就直接添加元素
否:就直接添加到集合
2、Treeset集合:
1)底層數(shù)據(jù)結(jié)構(gòu)是二叉樹
三、Map集合
Map集合中存儲的是鍵值對,鍵不能重復(fù),值可以重復(fù)。根據(jù)鍵得到值,對map集合遍歷時先得到鍵的set集合,對set集合進(jìn)行遍歷,得到相應(yīng)的值。
1、Map集合是Map集合家族的根接口,它有HashMap和TreeMap集合兩個子類。
2、Map集合中只對鍵有效,而對值是無效的。
3、子類的數(shù)據(jù)結(jié)構(gòu):
Hashmap:底層數(shù)據(jù)結(jié)構(gòu)是哈希表,Treemap底層數(shù)據(jù)結(jié)構(gòu)是二叉樹,其性質(zhì)和Set的底層數(shù)據(jù)結(jié)構(gòu)一樣。
推薦教程:Java教程
以上就是Java集合有哪些?的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
java怎么學(xué)習(xí)?java怎么入門?java在哪學(xué)?java怎么學(xué)才快?不用擔(dān)心,這里為大家提供了java速學(xué)教程(入門到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號