在Java中,LinkedList泛型类继承了AbstractSequentialListf泛型类,实现了List、Deque、Colneable和Serializable接口,定义如下:

该类的实现使用的是循环链表的结构,我们知道,一个链表的主要标志就是表头,所以一个LinkedList泛型类中一定要有一个头结点,链表的组成元素是结点,所以还需要在该类中定义一个结点的内部类,当然,也可以在外面定义,为了实现更好的封装性,定义成private的内部类是再好不过的了。

下面是定义的头结点和内部结点类:

在定义header的时候,使用了一个transient修饰符,在Java中,被该修饰符修饰的变量在串行化的时候(序列化)的时候,不会序列化该变量。因为一个链表,如果需要串行化,我们需要的信息只是结点中的信息,所以头结点可以定义成一个被transient修饰的变量。同时还定义了一个size变量,用来保存链表的长度,同样,它也应该使用transient修饰符。

下面是定义的结点类Entry类:


一个结点除了要保存数据之外,还应该保存它的后继(单项链表),由于该类提供一些操作,需要向前遍历,所以还需要有一个保存前驱的信息,即privious引用。

下面是LinkedList泛型类中的listIterator()方法:

还有一些操作,主要是对引用的修改。在此不一一列出了。

相关文章:

  • 2022-01-23
  • 2021-09-23
  • 2021-11-02
  • 2021-06-12
  • 2022-01-21
  • 2021-07-27
  • 2021-10-29
猜你喜欢
  • 2021-10-16
  • 2021-07-28
  • 2021-06-30
  • 2021-06-04
  • 2022-12-23
  • 2022-01-13
  • 2022-12-23
相关资源
相似解决方案