Java常用集合体系以及相互区别
Collection集合特點(diǎn):
1.2.1一些 collection 允許有重復(fù)的元素,而另一些則不允許
1.2.2一些 collection 是有序的,而另一些則是無(wú)序的
【有序是指與添加的順序一致,并非是按照一定的要求來(lái)排列形成的有序,如從大到小,小到大等】
Collections
在類(lèi)中還用一個(gè)和Collection功能能類(lèi)似的工具類(lèi)Collections:
此類(lèi)完全由在 collection 上進(jìn)行操作或返回 collection 的靜態(tài)方法組成
比如添加數(shù)據(jù):
Collections.addAll(Collection
ArrayList集合特點(diǎn):
1.有序,允許重復(fù)(有序指跟添加順序一致)
2.有下標(biāo),可以通過(guò)下標(biāo)獲取元素,以及將元素插入指定位置
3.底層使用的數(shù)據(jù)結(jié)構(gòu)是數(shù)組,線(xiàn)程不安全
4.數(shù)組在內(nèi)存地址是連續(xù)的,因此查找時(shí)快,增刪速度慢查找速度快,增刪速度慢
LinkedList集合特點(diǎn):
1,有序,允許重復(fù)(有序指與添加順序一致)
2,有下標(biāo),可以通過(guò)下標(biāo)獲取元素,以及將元素插入指定位置
3,底層使用的數(shù)據(jù)結(jié)構(gòu)是鏈表以及堆棧結(jié)構(gòu),線(xiàn)程不安全
4,鏈表內(nèi)存地址不連續(xù),因此查找速度慢,增刪速度快
HashSet特點(diǎn)
1.無(wú)序,不允許重復(fù)(無(wú)序指元素順序與添加順序不一致,每次遍歷出來(lái)的位置不是恒久不變的)
2.HashSet通過(guò)調(diào)用hashCode()和equals方法來(lái)剔除重復(fù)
3.HashSet底層使用的數(shù)據(jù)結(jié)構(gòu)是哈希表
4.HashSet有初始容量16,加載因子0.75.這兩個(gè)參數(shù)都可以設(shè)置
TreeSet集合特點(diǎn):
1.無(wú)序,不允許重復(fù)
2.底層使用的數(shù)據(jù)結(jié)構(gòu)是二叉樹(shù)
3.TreeSet集合一定要實(shí)現(xiàn)一種排序 否則就會(huì) ClassCastException
4.有兩種排序:自然排序和定制排序
HashMap集合特點(diǎn):
1.無(wú)序,不允許重復(fù)(無(wú)序指元素順序與添加順序不一致);
2.底層數(shù)據(jù)結(jié)構(gòu)是哈希表
3.HashMap內(nèi)部對(duì)”鍵”用Set進(jìn)行散列存放。所以根據(jù)”鍵”去取”值”的效率很高。
4.鍵是唯一的,值是可以重復(fù)的
5.能出現(xiàn)最多一個(gè)null鍵,任意多個(gè)null值
TreeMap特點(diǎn):
1.無(wú)序,不允許重復(fù)(無(wú)序指元素順序與添加順序不一致)
2.TreeMap集合默認(rèn)會(huì)對(duì)鍵進(jìn)行排序,所以鍵必須實(shí)現(xiàn)自然排序和定制排序中的一種
3..底層使用的數(shù)據(jù)結(jié)構(gòu)是二叉樹(shù)
總結(jié)
以上是生活随笔為你收集整理的Java常用集合体系以及相互区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: TreeMap集合特点、排序原理
- 下一篇: Java中IO流的总结