五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

150天打卡Day24_集合深度解析- Java集合體系

2021-05-18 11:39 作者:關(guān)阿姨的Java日記  | 我要投稿

Java集合框架概述

集合,數(shù)組都是對多個數(shù)據(jù)進行存儲操作的結(jié)構(gòu),簡稱Java容器,此時的存儲主要是內(nèi)存層面的,不涉及到持久化存儲

數(shù)組在存儲多個數(shù)據(jù)方面的缺點

一旦初始化以后,其長度就確定了,不可修改,

數(shù)組一旦定義好類型,其類型就確定了,只能操作指定類型的數(shù)據(jù)

數(shù)組中提供的方法有限,對于例如插入,刪除操作非常不便,效率很低

獲取數(shù)組中實際元素個數(shù)的需求,數(shù)組中沒有現(xiàn)成的屬性或方法可用

數(shù)組存儲數(shù)據(jù)的特點:有序可重復,對于一些無序不可重復的需求,數(shù)組也不能滿足

Java集合體系介紹 ?

Java集合可以分為Collection和Map兩種體系,位于Java.util包下

Collection:存放單列數(shù)據(jù),定義了存取一組對象的方法的集合

下分兩類:

List:元素有序,可重復的集合(ArrayList,LinkedList,vector)

set:元素無序,不可重復的集合(HashSet,LinkedHashSet,TreeSet)

Map:存放雙列數(shù)據(jù),保存具有映射關(guān)系的"key-value"對的集合

(HashMap,LinkedHashMap,TreeMap,HashTable,Properties)

集合這里的有序不是排序,指的是添加順序和取出順序一致


Collection和Collections的區(qū)別

Collection是一個單列集合接口,提供了對集合對象進行基本操作的通用接口方法

Collections是一個包裝類,包含1很多對集合操作的靜態(tài)方法,此類不能被實例化,是一個工具類,服務(wù)于Java的Collection集合

集合迭代器 iterator

迭代器常用來遍歷集合

Foreach循環(huán)遍歷(內(nèi)部仍然是迭代器)


Collection子接口之一:List接口

鑒于Java中用數(shù)組存儲數(shù)據(jù)的局限性,通常使用LIst代替數(shù)組

List集合中元素有序,且可重復,集合中每個元素都有其對應(yīng)的順序索引

List容器中的元素都有對應(yīng)一個整數(shù)型的序號記載其在容器中的位置,可以根據(jù)序號存取元素

List接口常用的實現(xiàn)類:ArrayList,LinkedList,Vector

ArrayList,LinkedList,Vector的異同

相同點

均實現(xiàn)了List接口,擁有List集合的特性

不同點

ArrayList作為List接口最常用的實現(xiàn)類,線程不安全,效率高,底層是一個Object類型的數(shù)組elementdata,在JDK1.2版本問世

LinkedList底層使用雙向鏈表存儲,線程不安全,對于頻繁的插入,刪除操作,效率高于ArrayList,查找效率低于ArrayList,因為缺少按索引查找

Vector和ArrayList基本一致,底層公共方法均加了Synchronized關(guān)鍵字,線程安全,效率較低,底層也是Object[] elementData ,JDK1.0版本就問世了

ArrayList源碼分析

底層創(chuàng)建的初始長度為10的Object類型的數(shù)組elementData,擴容擴為原來的1.5倍,同時將原有數(shù)組中的數(shù)據(jù)拷貝到新數(shù)組中,建議開發(fā)中創(chuàng)建數(shù)組使用ArrayList帶參構(gòu)造器,指定初始容量,減少擴容可以使效率提高

JDK1.8ArrayList變化

創(chuàng)建時不指定容量,第一次調(diào)用add方法才創(chuàng)建初始容量為10的數(shù)組elementdata,其余與1.7一致

LinkedList源碼分析

底層采用雙向鏈表進行存儲,底層數(shù)據(jù)存儲的基本單位是Node,內(nèi)部聲明了Node類型的prev和next屬性, 默認值為null,進行添加操作相當于把元素封裝到Node中,創(chuàng)建了Node對象

Vector源碼分析

與ArrayList很相似,公共方法均添加了synchronized關(guān)鍵字,保證線程安全

Vector底層擴容,擴容為原來的2倍

大家記得給關(guān)阿姨點個關(guān)注呦


150天打卡Day24_集合深度解析- Java集合體系的評論 (共 條)

分享到微博請遵守國家法律
灵寿县| 锦屏县| 安康市| 阳曲县| 阿拉善右旗| 丘北县| 五华县| 镇安县| 台山市| 吴旗县| 达孜县| 隆子县| 辉县市| 武川县| 廊坊市| 杨浦区| 沛县| 陆川县| 瑞金市| 钦州市| 固镇县| 万盛区| 临沭县| 吉安县| 正宁县| 漯河市| 彩票| 天等县| 海伦市| 额尔古纳市| 错那县| 肥东县| 华容县| 宁夏| 乌拉特前旗| 拉孜县| 鄂托克前旗| 惠水县| 额尔古纳市| 常山县| 当雄县|