zoukankan      html  css  js  c++  java
  • List集合之LinkedList

    一、初步认识

              LinkedList也是List接口的实现类,与ArrayList不同之处是采用的存储结构不同,ArrayList的数据结构为线性表,而LinkedList数据结构是链表。链表数据结构的特点是每个元素分配的空间不必连续、插入和删除元素时速度非常快、但访问元素的速度较慢。

             LinkedList是一个双向链表, 当数据量很大或者操作很频繁的情况下,添加和删除元素时具有比ArrayList更好的性能。但在元素的查询和修改方面要弱于ArrayList。LinkedList类每个结点用内部类Node表示,LinkedList通过first和last引用分别指向链表的第一个和最后一个元素,当链表为空时,first和last都为NULL值。

    二、继承关系

    1 public class LinkedList<E>
    2     extends AbstractSequentialList<E>
    3     implements List<E>, Deque<E>, Cloneable, java.io.Serializable
    • LinkedList是一个继承于AbstractSequentialList的双向链表。它也可以被当做堆栈、队列或双端队列进行使用。
    • LinkedList实现List接口,能让它进行队列操作。
    • LinkedList实现Deque接口,即能将LinkedList当做双端队列使用。
    • LinkedList实现Cloneable,即覆盖了函数clone(),能被克隆。
    • LinkedList实现了java.io.Serializable接口,这意味着LinkedList支持序列化,能通过序列化去传输。
    • LinkedList中的操作不是线程安全的。

    二、存储结构图

     每个节点都应该有3部分内容:

     class  Node {
            Node  previous;     //前一个节点
            Object  element;    //本节点保存的数据
            Node  next;         //后一个节点
    }

    三、LinkedList源码分析

    大神讲的很清晰:https://www.cnblogs.com/yijinqincai/p/10964188.html

  • 相关阅读:
    完美世界经典版本881外挂
    ShowModal 动态创建窗体和释放窗体
    HTML 颜色代码大全
    padding margin border 的四值顺序
    三 C# Socket通信 窗体控件与多线程
    Java解压缩Zip 文件
    八 C# Socket通信 通信协议设计
    CSS+DIV实现鼠标经过背景变色
    七 C# Socket通信 阻塞性线程的快速终止
    二 C# Socket通信模式
  • 原文地址:https://www.cnblogs.com/qiaoxin11/p/12580118.html
Copyright © 2011-2022 走看看