最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

編程常用合集,List集合使用詳解掌握啦嗎?!

2022-03-21 13:49 作者:千鋒教育  | 我要投稿

我們知道,List是Java編程中經(jīng)常使用的集合之一,但List到底有哪些不為人知的地方,List為什么被使用得這么多?今天索爾就為大家分析一下關(guān)于List的那點(diǎn)事兒。

List本身其實(shí)是一個(gè)接口,繼承自Collection接口,所以List存儲(chǔ)元素的特點(diǎn)是單元素,區(qū)別于Map(雙元素集合),JDK8為L(zhǎng)ist接口提供了10個(gè)實(shí)現(xiàn)類,供開(kāi)發(fā)人員使用。

為什么提供那么多的實(shí)現(xiàn)類呢?因?yàn)樵趯?shí)際開(kāi)發(fā)場(chǎng)景下需要根據(jù)業(yè)務(wù)的不同選擇不同的實(shí)現(xiàn)類來(lái)使用,這就要求大家對(duì)實(shí)現(xiàn)類的特點(diǎn)都要加以掌握,才能在實(shí)際的開(kāi)發(fā)中運(yùn)用自如。有些菜鳥(niǎo)一個(gè)ArrayList走天下^!^。大家可以先看看下面我總結(jié)的List子類圖:

接下來(lái)我會(huì)給大家對(duì)以上幾個(gè)類進(jìn)行簡(jiǎn)要介紹。

1.AbstractList

從源碼中可以看到,這個(gè)類是抽象類無(wú)法進(jìn)行實(shí)例化。該類實(shí)現(xiàn)了迭代器和列表迭代器,同時(shí)也實(shí)現(xiàn)了get(int),set(int, E),add(int, E),remove(int)方法,如果子類有更好的處理方式可以覆蓋這些方法。

2.AbstractSequentialList

此抽象類實(shí)現(xiàn)由連續(xù)訪問(wèn)數(shù)據(jù)存儲(chǔ)所需的工作(如鏈表),它實(shí)現(xiàn)了對(duì)列表的列表迭代器頂部的隨機(jī)訪問(wèn)方法get(int),set(int index,E element),add(int index,E element)和remove(int index)

3.ArrayList

此類為主要實(shí)現(xiàn)類之一,實(shí)際開(kāi)發(fā)過(guò)程中經(jīng)常使用。主要完成可調(diào)整大小的集合(基于數(shù)組實(shí)現(xiàn)),每個(gè)ArrayList實(shí)例都有一個(gè)容量。容量是用于存儲(chǔ)列表中的元素的數(shù)組大小。請(qǐng)注意此實(shí)現(xiàn)線程不安全。

4.AttributeList

此類是ArryList的子類,是對(duì)ArrayList的擴(kuò)展。表示MBean屬性值的列表(MBean參見(jiàn)jdk官方文檔)。

5.CopyOnWriteArrayList

此類是一個(gè)線程安全的變體ArrayList,其中所有可變操作(add,set,remove等等)通過(guò)對(duì)底層數(shù)組的最新副本實(shí)現(xiàn)。

在多線程情況下使用較頻繁。

6.LinkedList

此類基于雙向鏈表實(shí)現(xiàn)List接口。實(shí)現(xiàn)所有可選列表操作,并允許所有元素(包括null)。

請(qǐng)注意,此實(shí)現(xiàn)不同步。

7.RoleList

RoleList表示角色列表(Role對(duì)象)。在創(chuàng)建關(guān)系時(shí)用作參數(shù),并且嘗試在關(guān)系中設(shè)置多個(gè)角色。

8.RoleUnresolvedList

RoleUnresolvedList表示RoleUnresolved對(duì)象的列表,表示由于在嘗試訪問(wèn)(讀取或?qū)懭耄┙巧珪r(shí)遇到問(wèn)題,不會(huì)從關(guān)系中檢索到角色。

9.Stack

Stack類代表最先進(jìn)先出(LIFO)堆棧的對(duì)象。它擴(kuò)展了類別Vector與五個(gè)操作,允許一個(gè)向量被視為堆棧。

設(shè)置在通常的push和pop操作,以及作為一種方法來(lái)peek在堆棧,以測(cè)試堆棧是否為empty的方法,以及向search在棧中的項(xiàng)目的方法在頂部項(xiàng)目和發(fā)現(xiàn)多遠(yuǎn)它是從頂部。

當(dāng)首次創(chuàng)建堆棧時(shí),它不包含任何項(xiàng)目。

10.Vector

此類實(shí)現(xiàn)了可擴(kuò)展的對(duì)象數(shù)組。像數(shù)組一樣,它包含可以使用整數(shù)索引訪問(wèn)的組件。但是,Vector的大小可以根據(jù)需要增長(zhǎng)或縮小,以適應(yīng)在創(chuàng)建之后添加和刪除項(xiàng)目。

因操作速度較慢,故基本不適用,但卻是線程安全,建議使用ArrayList代替Vector。

好了,以上就是索爾給大家分析的List基本內(nèi)容,現(xiàn)在你對(duì)List的認(rèn)識(shí)是不是更深刻了呢?可以在評(píng)論區(qū)給索爾留言哦。

福利推薦!?索爾老師Java面試教程



編程常用合集,List集合使用詳解掌握啦嗎?!的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
恩平市| 宝鸡市| 阆中市| 邵东县| 金昌市| 深水埗区| 凤翔县| 景德镇市| 广平县| 安仁县| 淮阳县| 扎鲁特旗| 四会市| 嫩江县| 南投市| 丰镇市| 家居| 乌兰浩特市| 诏安县| 平和县| 颍上县| 西乌珠穆沁旗| 乌兰县| 峨边| 韶关市| 高阳县| 莆田市| 毕节市| 班玛县| 定南县| 石楼县| 咸阳市| 凯里市| 承德县| 徐闻县| 平遥县| 伊川县| 桃江县| 中卫市| 龙里县| 改则县|