Java中LinkedList的作用是什么

  介绍

这期内容当中小编将会给大家带来有关Java中LinkedList的作用是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

<代码> LinkedList> 列表,又实现了<代码>双端队列> ArrayList 一样使用,后者又使它能够承担队列的职责。<代码> LinkedList> ArrayDeque> <强>。

AbstractSequentialList

<代码> AbstractSequentialList 是<代码> LinkedList> AbstractList>

这个类提供了一个框架实现的<强> 列表界面最小化所需的努力实现这个接口支持的“顺序access"数据存储(如一个链表)。随机存取数据(比如一个数组),<强> AbstractList 应该优先于这个类使用。

意思是它的主要作用是提供一个实现列表<代码> 接口的骨架,来减少我们实现基于链式存储的实现类时所需的工作量。<代码> AbstractSequentialList>

 public  abstract  ListIterator, listIterator (int 指数);

其他一些方法的实现都利用了这个<代码> listIterator 方法,我们不再一一查看了。下面我们分析<代码> LinkedList>

LinkedList的结构

<代码> LinkedList>

癑ava中LinkedList的作用是什么"

可以看的到,<代码> LinkedList> 可克隆,<代码> java.io.Serializable> ArrayList> 也克隆是浅克隆,在序列化方法也采用了同样的方式,我们就不再赘述了。

构造方法与成员变量

数据单元节点

在介绍链表结构时提到过,其数据单元分为数据域和指针域,分别存储数据和指向下一个元素的位置,在Java中只要定义一个实体类就可以解决了。

 private  static  class  Node, {
  ,,,E 项目;,//数据
  ,,,Node,第二,,//下一个元素
  ,,,Node,上一页,,//上一个元素
  
  ,,,节点(Node,第二),{
  ,,,,,,,this.item =,元素;
  ,,,,,,,this.next =,下一个;
  ,,,,,,,this.prev =,上一页;
  ,,,}
  }

成员变量

<代码> LinkedList>

//,记录当前链表的长度
  时间=transient  int  size  0;//,第一个节点
  transient  Node< E>,第一;//,最后一个节点
  transient  Node< E>,去年,

构造函数

因为链表没有长度方面的问题,所以也不会涉及到扩容等问题,其构造函数也十分简洁了。

 public  LinkedList (), {
  }
  
  public  LinkedList (Collection<?, extends  E>, c), {
  ,,,();
  ,,,addAll (c);
  }

一个默认的构造函数,什么都没有做,一个是用其他集合初始化,调用了一下<代码> addAll 方法。<代码> addAll 方法我们就不再分析了,它应该是和添加一个元素的方法是一致的。

重要方法

<代码> LinkedList> 列表,又继承了<代码>双端队列> 添加,<代码>删除,<代码> addFirst ,<代码> addLast> LinkedList>

//将一个元素链接到首位
  private  void  linkFirst (E  e), {
  ,,,//先将原链表存起来
  ,,,final  Node, f =,第一;
  ,,,//定义一个新节点,下指其向原来的第一次
  ,,,final  Node, newNode =, new  Node<祝辞(null,, e, f);
  ,,,//将首先指向新建的节点
  ,,,first =, newNode;
  ,,,//原链表为空表
  ,,,if  (f ==, null)
  ,,,,,,,//把去年也指向新建的节点,现在第一个与最后一个都指向了它
  ,,,,,,,last =, newNode;
  ,,,
  ,,,,,,,//把原链表挂载在新建节点,也就是现在的第一之后
  ,,,,,,,f.prev =, newNode;
  ,,,大小+ +;
  ,,,modCount + +;
  }//与linkFirst类似
  void  linkLast (E  e), {
  ,,,//?
  }
  
  ,//在某个非空节点之前添加元素
  void  linkBefore (e, E  Node

Java中LinkedList的作用是什么