成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java集合中的LinkedList

adie / 1481人閱讀

摘要:什么是是一個雙向連表,實(shí)現(xiàn)了接口,該接口中定義了雙向連表的一般操作。也實(shí)現(xiàn)了接口,所以包含的基本方法新增,刪除,插入等都實(shí)現(xiàn)了。也繼承了該類中定義了順序訪問所需實(shí)現(xiàn)的方法。

什么是LinkedList

1 LinkedList 是一個 Doubly-linked list雙向連表,實(shí)現(xiàn)了Deque接口,該接口中定義了雙向連表的一般操作。

2 LinkedList 也實(shí)現(xiàn)了List接口,所以List包含的基本方法(新增,刪除,插入等)LinkedList都實(shí)現(xiàn)了。

3 LinkedList 也繼承了AbstractSequentialList該類中定義了順序訪問所需實(shí)現(xiàn)的方法。

順序訪問:數(shù)據(jù)是有序的,訪問也是有序的,獲取元素必須從頭開始遍歷比對,不能直接以數(shù)組的方式獲取指定索引位上的值。

隨機(jī)訪問:隨機(jī)訪問可以通過隨機(jī)訪問方法直接獲取指定索引位上的值如ArrayListget(int index), set(int index, E element), add(int index, E element) and remove(int index)

雙向連表數(shù)據(jù)結(jié)構(gòu)及相關(guān)操作

1.基本結(jié)構(gòu)

雙向連表包含的基本元素包含直接前驅(qū)、直接后繼、值域,直接前驅(qū)指向前一個節(jié)點(diǎn)地址,直接后繼指向后一個節(jié)點(diǎn)地址,直接前驅(qū)為空時是頭節(jié)點(diǎn),直接后繼為空時是尾節(jié)點(diǎn)

2.基本操作(add,remove過程相反)

在雙向連表中插入節(jié)點(diǎn)時需要改變插入位置前后兩個節(jié)點(diǎn)的直接前驅(qū)和直接后繼的指向如圖所示

LinkedList的實(shí)現(xiàn)

LinkedList 在內(nèi)部是通過一個私有的靜態(tài)內(nèi)部類來實(shí)現(xiàn)連表的,內(nèi)部類代碼如下

transient Node first; // 頭節(jié)點(diǎn)
transient Node last; // 尾節(jié)點(diǎn)
private static class Node {
    // 存放數(shù)據(jù)
    E item;
    // 直接后繼
    Node next;
    // 直接前驅(qū)
    Node prev;
    Node(Node prev, E element, Node next) {
        this.item = element;
        this.next = next;
        this.prev = prev;
    }
}

LinkedList的操作都是圍繞著first last這兩個對象來進(jìn)行。

LinkedList 的其他相關(guān)內(nèi)容 1.0 和 ArrayList 相比
雖然兩種數(shù)據(jù)結(jié)構(gòu)都可以當(dāng)List來用,但是對于不同的數(shù)據(jù)操作而言,性能和開銷是不等的。ArrayList 身為Array的實(shí)現(xiàn),優(yōu)勢體現(xiàn)在隨機(jī)訪問上,而LinkedList是通過連表來實(shí)現(xiàn),則其優(yōu)勢便體現(xiàn)在了刪除和插入操作上。
2.0 線程安全問題
LinkedList是線程不安全的實(shí)現(xiàn),若要使用線程安全的LinkedList則需要你通過List list = Collections.synchronizedList(new LinkedList(...))來獲取。
3.0 并發(fā)修改異常
原理類似ArrayList 參考:ArrayList

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/74355.html

相關(guān)文章

  • java集合-List

    摘要:會死循環(huán),因?yàn)闂?nèi)不會彈出所以判斷會一直執(zhí)行。集合用于模擬隊(duì)列這種數(shù)據(jù)結(jié)構(gòu),隊(duì)列通常是指先進(jìn)先出的容器。集合不僅提供了的功能,還提供了雙端隊(duì)列,棧的功能。如果有多個線程需要訪問集合中的元素,需要考慮使用將幾個包裝成線程安全集合。 List判斷兩個對象相等只通過equals方法比較返回true即可。 public class A { @Override public ...

    MasonEast 評論0 收藏0
  • Java 集合 Queue

    摘要:除此之外,還有一個接口,代表一個雙端隊(duì)列,雙端隊(duì)列可以同時從兩端刪除添加元素,因此的實(shí)現(xiàn)類既可當(dāng)成隊(duì)列使用,也可當(dāng)成棧使用。相當(dāng)于棧方法將一個元素進(jìn)該雙端隊(duì)列所表示的棧的棧頂。 Queue用于模擬隊(duì)列這種數(shù)據(jù)結(jié)構(gòu),隊(duì)列通常是指先進(jìn)先出(FIFO)的容器。隊(duì)列的頭部保存在隊(duì)列中存放時間最長的元素,隊(duì)列的尾部保存在隊(duì)列中存放時間最短的元素。新元素插入(offer)到隊(duì)列的尾部,訪問元素(p...

    bang590 評論0 收藏0
  • Java集合問題大匯總

    摘要:集合中成員很豐富,常用的集合有,,等。實(shí)現(xiàn)接口的集合主要有。集合中不能包含重復(fù)的元素,每個元素必須是唯一的。而以作為實(shí)現(xiàn)的構(gòu)造函數(shù)的訪問權(quán)限是默認(rèn)訪問權(quán)限,即包內(nèi)訪問權(quán)限。與接口不同,它是由一系列鍵值對組成的集合,提供了到的映射。 原文地址 Java集合 Java集合框架:是一種工具類,就像是一個容器可以存儲任意數(shù)量的具有共同屬性的對象。 Java集合中成員很豐富,常用的集合有Arra...

    894974231 評論0 收藏0
  • Java編程基礎(chǔ)17——集合(List集合)

    1_(去除ArrayList中重復(fù)字符串元素方式)* A:案例演示 需求:ArrayList去除集合中字符串的重復(fù)值(字符串的內(nèi)容相同) 思路:創(chuàng)建新集合方式 import java.util.ArrayList; import java.util.Iterator; public class ArrayList_1_demo { /* 創(chuàng)建新集合將重復(fù)元素去掉 * 1.明...

    scola666 評論0 收藏0
  • Java常見集合知識詳解

    摘要:集合的種類常見的集合類分如下幾個種類詳解接口是和接口的父接口,也是集合類除外根接口。接口集合中元素的存放特點(diǎn)是元素有序,同一元素可重復(fù)??偨Y(jié)中集合是一個非常重要的知識點(diǎn),在實(shí)際運(yùn)用中也是常常會使用到。 集合的種類 常見的集合類分如下幾個種類: Collection - List - ArrayList - LinkedList - Set - HashSet...

    lewinlee 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<