成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Java集合中的LinkedList

adie / 1521人閱讀

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

什么是LinkedList

1 LinkedList 是一個(gè) 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ù)是有序的,訪問也是有序的,獲取元素必須從頭開始遍歷比對(duì),不能直接以數(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ū)指向前一個(gè)節(jié)點(diǎn)地址,直接后繼指向后一個(gè)節(jié)點(diǎn)地址,直接前驅(qū)為空時(shí)是頭節(jié)點(diǎn),直接后繼為空時(shí)是尾節(jié)點(diǎn)

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

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

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

LinkedList 在內(nèi)部是通過一個(gè)私有的靜態(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這兩個(gè)對(duì)象來進(jìn)行。

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/74355.html

相關(guān)文章

  • java集合-List

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

    MasonEast 評(píng)論0 收藏0
  • Java 集合 Queue

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

    bang590 評(píng)論0 收藏0
  • Java集合問題大匯總

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

    894974231 評(píng)論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 評(píng)論0 收藏0
  • Java常見集合知識(shí)詳解

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

    lewinlee 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<