当前位置:   article > 正文

java集合—— LinkedList(双链表)的理解与用法_19.java 中的 linkedlist 是单向链表还是双向链表

19.java 中的 linkedlist 是单向链表还是双向链表

LinkedList介绍

知识点

  • LinkedList 是以链表实现的,插入、删除时只需要改变前后两个节点指针指向。
  • LinkedList类是双向列表,列表中的每个节点都包含了对前一个和后一个元素的引用。
  • LinkedList 是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。
  • LinkedList 的成员变量只有三个:头节点 first、尾节点 last、容量 size
  • LinkedList 实现 List 接口,能对它进行队列操作。
  • LinkedList 实现 Deque 接口,即能将LinkedList当作双端队列使用。
  • LinkedList 实现了Cloneable接口,即覆盖了函数clone(),能克隆。
  • LinkedList 实现java.io.Serializable接口,这意味着LinkedList支持序列化,能通过序列化去传输。
  • LinkedList 是非同步的。
    在这里插入图片描述

LinkedList构造函数

  1. public LinkedList(): ——生成空的链表
  2. public LinkedList(Collection col): 复制构造函数

AbstractSequentialList简介

LinkedList是AbstractSequentialList的子类。AbstractSequentialList 实现了get(int index)、set(int index, E element)、add(int index, E element) 和 remove(int index)这些函数。LinkedList既然继承于AbstractSequentialList,就相当于已经实现了这些接口”。
此外,我们若需要通过AbstractSequentialList自己实现一个列表,只需要扩展此类,并提供 listIterator() 和 size() 方法的实现即可。若要实现不可修改的列表,则需要实现列表迭代器的 hasNext、next、hasPrevious、previous 和 index 方法即可。

LinkedList数据结构

双向链表实现:
Node结点的定义:是LinkedList的静态内部类,每个节点指向前一个结点和后一个结点,这就是双向链表结点。
在这里插入图片描述
LinkedList的继承关系

java.lang.Object
   ↳     java.util.AbstractCollection<E>
         ↳     java.util.AbstractList<E>
               ↳     java.util.AbstractSequentialList<E>
                     ↳     java.util.LinkedList<E>

public class LinkedList<E>
    extends AbstractSequentialList<E>
    implements List<E>, Deque<E>, Cloneable, java.io.Serializable {
   }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

LinkedList基本用法

更多的情况下我们使用 ArrayList 访问列表中的随机元素更加高效,但以下几种情况 LinkedList 提供了更高效的方法。
1.创建一个简单的链表实例:

import java.util.LinkedList;
public class RunTest {
   
    public static void main(String[] args) {
   
        LinkedList<String> sites = new LinkedList<String><
  • 1
  • 2
  • 3
  • 4
  • 5
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/925560
推荐阅读
相关标签
  

闽ICP备14008679号