java集合—— LinkedList(双链表)的理解与用法

本文详细介绍了LinkedList,作为Java中的双向链表,它不仅实现了List接口,还能用作堆栈、队列或双端队列。LinkedList包含头节点first、尾节点last和容量size,支持克隆和序列化,但非同步。文章探讨了LinkedList的构造函数、AbstractSequentialList的关系以及在特定场景下比ArrayList更高效的用法。
摘要由CSDN通过智能技术生成

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 {
   }

LinkedList基本用法

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

import java.util.LinkedList;
public class RunTest {
   
    public static void main(String[] args) {
   
        LinkedList<String> sites = new LinkedList<String><
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值