大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專(zhuān)注Java教育14年 全國(guó)咨詢(xún)/投訴熱線(xiàn):400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java學(xué)習(xí) Java基礎(chǔ)學(xué)習(xí):Java集合學(xué)習(xí)之list集合

Java基礎(chǔ)學(xué)習(xí):Java集合學(xué)習(xí)之list集合

更新時(shí)間:2020-04-30 10:48:42 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2761次

    今天我們來(lái)詳細(xì)聊一下各個(gè)集合類(lèi)的適用場(chǎng)景和需要注意的地方。今天主要介紹一下List,如有錯(cuò)誤之處:

    List

    List是java集合中最簡(jiǎn)單,也是最常用的一種集合。List存儲(chǔ)的是一種有序、不重復(fù)的數(shù)據(jù)。比如產(chǎn)品列表、商品列表等等。ArrayList和LinkedList是比較常用的List集合類(lèi)。今天主要是聊一聊這兩種List的具體實(shí)現(xiàn)以及適用場(chǎng)景。

    ArrayList

    ArrayList常用增刪改查操作如下:

Java基礎(chǔ)學(xué)習(xí):Java集合學(xué)習(xí)之list集合

    ArrayList的底層實(shí)現(xiàn)是一個(gè)數(shù)組,默認(rèn)的構(gòu)造函數(shù)newArrayList<>(),數(shù)組的容量為10。當(dāng)調(diào)用add()或者add(index,value)方法的時(shí)候。首先要判斷數(shù)組的是否超過(guò)容量,不然需要擴(kuò)容長(zhǎng)度。擴(kuò)容的邏輯是在原有的長(zhǎng)度上,增加1/2,也即原來(lái)如果是10的話(huà),第一次擴(kuò)容的長(zhǎng)度是15,用Arrays.copyOf()方法復(fù)制一個(gè)新的容量為新長(zhǎng)度數(shù)組出來(lái),復(fù)制給原先的數(shù)組。如果擴(kuò)充的長(zhǎng)度超過(guò)Integer.MAX_VALUE時(shí)會(huì)報(bào)OutOfMemoryError。

    增:ArrayList有兩種增加元素的方法,在數(shù)組的末尾直接添加元素即add(element)。還有一種方式是在指定的index上添加元素,此時(shí)如果該index上有元素,當(dāng)前元素和后續(xù)元素都需后移,時(shí)間復(fù)雜度為O(N)。

    刪:ArrayList有兩種刪除元素的方法,按元素值刪除和按index刪除。按值刪除,首先需要找到元素值得位置,這里要注意的是,自定義對(duì)象要實(shí)現(xiàn)equals方法,因?yàn)闆Q定元素值是否相等取決于equals的返回值。找到位置后,該位置后續(xù)的所有元素都要前移,時(shí)間復(fù)雜度為O(n)。按index刪除,根據(jù)index找到位置,該位置后面所有的元素前移,時(shí)間復(fù)雜度為O(n)。

    改:ArrayList的修改操作比較簡(jiǎn)單,直接在數(shù)組的index,把新的值賦值給所在的index即可,時(shí)間復(fù)雜度為O(1)。

    查:直接根據(jù)index,找到位置取出值即可。

    結(jié)論:

    1、ArrayList適合創(chuàng)建前能預(yù)估容量大小的場(chǎng)景

    2、ArrayList適合于查詢(xún)和更改比較多的場(chǎng)景,不適合刪除比較多的場(chǎng)景

    3、在使用按值刪除操作時(shí),需實(shí)現(xiàn)equals方法。個(gè)人建議,自定義對(duì)象默認(rèn)都要實(shí)現(xiàn)equals和hashCode方法,不然容易掉坑里面。

    LinkedList

    LinkedList常用的增刪改查操作如下:

Java基礎(chǔ)學(xué)習(xí):Java集合學(xué)習(xí)之list集合

    可以看到的是和ArrayList調(diào)用的方法是一樣的。但是實(shí)現(xiàn)原理是不一樣的。LinkedList的實(shí)現(xiàn)原理是一個(gè)鏈表。

    增:LinkedList同樣有兩種增加元素的方法,在鏈表尾部增加元素和指定index增加元素,在尾部增加元素,直接在last節(jié)點(diǎn)增加節(jié)點(diǎn),重新復(fù)制last即可,時(shí)間復(fù)雜度為O(1).指定index增加元素,相比ArrayList多了個(gè)尋找index的操作,但是不需要移動(dòng)元素,只需更改結(jié)點(diǎn)之間的指向關(guān)系就可以,時(shí)間復(fù)雜度為O(n)(不是通常認(rèn)為的O(1),好多人認(rèn)為是O(1)。

    刪:LinkedList同樣兩種刪除元素的方法,按元素值刪除和按index刪除。

    按值刪除,與ArrayList類(lèi)似,不同的是元素不需要移動(dòng),時(shí)間復(fù)雜度為O(n)。按index刪除,根據(jù)index找到元素后,也不需要移動(dòng)元素,時(shí)間復(fù)雜度為O(n)。

    改:根據(jù)index找到位置后,更新值。這個(gè)比較簡(jiǎn)答,沒(méi)什么可說(shuō)的,時(shí)間復(fù)雜度也是O(1)。

    查:LinkedList的查詢(xún)相對(duì)于ArrayList復(fù)雜度就比較高,LinkedList需要移動(dòng)指針找到查詢(xún)的元素,時(shí)間復(fù)雜度為O(1)。

    結(jié)論:

    1、LinkedList不需要連續(xù)的內(nèi)存,分散的內(nèi)存空間也可以。ArrayList是必須要連續(xù)的存儲(chǔ)空間的。此外LinkedList沒(méi)有擴(kuò)容這么一說(shuō)。

    2、LinkedList增加和刪除沒(méi)有涉及元素的移動(dòng),相對(duì)ArrayList是比較合適的,但是不適合查詢(xún)。

    此外,LinkedList不僅僅用做List,還被經(jīng)常用作隊(duì)列和棧。隊(duì)列是一種先進(jìn)先出FIFO的數(shù)據(jù)結(jié)構(gòu)。棧是一種先進(jìn)后出FILO的數(shù)據(jù)結(jié)構(gòu)。這兩種數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)中使用比較頻繁的數(shù)據(jù)結(jié)構(gòu),后續(xù)有空再詳細(xì)介紹

Java基礎(chǔ)學(xué)習(xí):Java集合學(xué)習(xí)之list集合

 以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java基礎(chǔ)學(xué)習(xí):Java集合學(xué)習(xí)之list集合”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€(xiàn)咨詢(xún),有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話(huà)與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-04-24 搶座中
  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 国产精品亚洲精品观看不卡 | 天天做天天爱天天综合网 | 四虎综合网 | 天天天天鲁天天拍一拍 | 99在线观看精品 | 特黄aa级毛片免费视频播放 | 亚洲国产综合网 | 久久99国产综合精品 | 中文字幕日本精品一区二区三区 | 黄色大全网站 | 久久精品国产视频在热 | 青青热久免费精品视频精品 | 国产成人mv在线观看入口视频 | 欧美一级毛片aaa片 欧美一级毛片不卡免费观看 | 亚洲热在线视频 | 婷婷亚洲五月色综合 | 中文字幕欧美日韩久久 | 久久久久久久99精品免费观看 | 天天做.天天爱.天天综合网 | 精品欧美一区二区三区在线观看 | 国产精品一区牛牛影视 | 91精品国产乱码久久久久久 | 久久国产热这里只有精品8 久久国产三级 | 天天狠狠色综合图片区 | 欧美日韩精品 | 亚洲日本在线播放 | 日韩欧美亚洲综合一区二区 | 天堂网在线观看 | 亚洲欧美日韩精品 | 国产精品久久久久影视青草 | 免费看片aⅴ免费大片 | 国产精品v | 国产大片中文字幕在线观看 | 午夜久久免费视频 | 婷婷网五月天天综合天天爱 | 91啪国自产在线高清观看 | 色婷婷天天综合在线 | 成年性午夜免费视频网站不卡 | 欧美日韩免费 | 综合在线播放 | 国产欧美另类第一页 |