资讯专栏INFORMATION COLUMN

Java集合中的LinkedList

adie / 1419人阅读

摘要:什么是是一个双向连表,实现了接口,该接口中定义了双向连表的一般操作。也实现了接口,所以包含的基本方法新增,删除,插入等都实现了。也继承了该类中定义了顺序访问所需实现的方法。

什么是LinkedList

1 LinkedList 是一个 Doubly-linked list双向连表,实现了Deque接口,该接口中定义了双向连表的一般操作。

2 LinkedList 也实现了List接口,所以List包含的基本方法(新增,删除,插入等)LinkedList都实现了。

3 LinkedList 也继承了AbstractSequentialList该类中定义了顺序访问所需实现的方法。

顺序访问:数据是有序的,访问也是有序的,获取元素必须从头开始遍历比对,不能直接以数组的方式获取指定索引位上的值。

随机访问:随机访问可以通过随机访问方法直接获取指定索引位上的值如ArrayListget(int index), set(int index, E element), add(int index, E element) and remove(int index)

双向连表数据结构及相关操作

1.基本结构

双向连表包含的基本元素包含直接前驱、直接后继、值域,直接前驱指向前一个节点地址,直接后继指向后一个节点地址,直接前驱为空时是头节点,直接后继为空时是尾节点

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

在双向连表中插入节点时需要改变插入位置前后两个节点的直接前驱和直接后继的指向如图所示

LinkedList的实现

LinkedList 在内部是通过一个私有的静态内部类来实现连表的,内部类代码如下

transient Node first; // 头节点
transient Node last; // 尾节点
private static class Node {
    // 存放数据
    E item;
    // 直接后继
    Node next;
    // 直接前驱
    Node prev;
    Node(Node prev, E element, Node next) {
        this.item = element;
        this.next = next;
        this.prev = prev;
    }
}

LinkedList的操作都是围绕着first last这两个对象来进行。

LinkedList 的其他相关内容 1.0 和 ArrayList 相比
虽然两种数据结构都可以当List来用,但是对于不同的数据操作而言,性能和开销是不等的。ArrayList 身为Array的实现,优势体现在随机访问上,而LinkedList是通过连表来实现,则其优势便体现在了删除和插入操作上。
2.0 线程安全问题
LinkedList是线程不安全的实现,若要使用线程安全的LinkedList则需要你通过List list = Collections.synchronizedList(new LinkedList(...))来获取。
3.0 并发修改异常
原理类似ArrayList 参考:ArrayList

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/74355.html

相关文章

  • java集合-List

    摘要:会死循环,因为栈内不会弹出所以判断会一直执行。集合用于模拟队列这种数据结构,队列通常是指先进先出的容器。集合不仅提供了的功能,还提供了双端队列,栈的功能。如果有多个线程需要访问集合中的元素,需要考虑使用将几个包装成线程安全集合。 List判断两个对象相等只通过equals方法比较返回true即可。 public class A { @Override public ...

    MasonEast 评论0 收藏0
  • Java 集合 Queue

    摘要:除此之外,还有一个接口,代表一个双端队列,双端队列可以同时从两端删除添加元素,因此的实现类既可当成队列使用,也可当成栈使用。相当于栈方法将一个元素进该双端队列所表示的栈的栈顶。 Queue用于模拟队列这种数据结构,队列通常是指先进先出(FIFO)的容器。队列的头部保存在队列中存放时间最长的元素,队列的尾部保存在队列中存放时间最短的元素。新元素插入(offer)到队列的尾部,访问元素(p...

    bang590 评论0 收藏0
  • Java集合问题大汇总

    摘要:集合中成员很丰富,常用的集合有,,等。实现接口的集合主要有。集合中不能包含重复的元素,每个元素必须是唯一的。而以作为实现的构造函数的访问权限是默认访问权限,即包内访问权限。与接口不同,它是由一系列键值对组成的集合,提供了到的映射。 原文地址 Java集合 Java集合框架:是一种工具类,就像是一个容器可以存储任意数量的具有共同属性的对象。 Java集合中成员很丰富,常用的集合有Arra...

    894974231 评论0 收藏0
  • Java编程基础17——集合(List集合)

    1_(去除ArrayList中重复字符串元素方式)* A:案例演示 需求:ArrayList去除集合中字符串的重复值(字符串的内容相同) 思路:创建新集合方式 import java.util.ArrayList; import java.util.Iterator; public class ArrayList_1_demo { /* 创建新集合将重复元素去掉 * 1.明...

    scola666 评论0 收藏0
  • Java常见集合知识详解

    摘要:集合的种类常见的集合类分如下几个种类详解接口是和接口的父接口,也是集合类除外根接口。接口集合中元素的存放特点是元素有序,同一元素可重复。总结中集合是一个非常重要的知识点,在实际运用中也是常常会使用到。 集合的种类 常见的集合类分如下几个种类: Collection - List - ArrayList - LinkedList - Set - HashSet...

    lewinlee 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<