当前位置:   article > 正文

Java 链表 (LinkedList)(详细)_linkedlist的类型

linkedlist的类型

一、什么是链表 ?

1、链表简介

  1. 链表(Linkedlist)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的地址。
  2. 它是一个集合,可以根据索引来随机的访问集合中的元素,还实现了Deque接口
  3. 它还是一个队列,可以当成双端队列来使用。
  4. 虽然LinkedList是一个List集合,但是它的实现方式和ArrayList是完全不同的,ArrayList的底层是通过一个动态的Object[]数组实现的,而LinkedList的底层是通过链表来实现的,因此它的随机访问速度是比较差的,但是它的删除,插入操作很快
  5. LinkedList是基于双向循环链表实现的,除了可以当作链表操作外,它还可以当作栈、队列和双端队列来使用。
  6. LinkedList同样是非线程安全的,只在单线程下适合使用

2、链表的分类:

链表可分为 单向链表 、 双向链表 及循环链表 (就像你单恋,双恋还要三角恋差不多,( ఠൠఠ )ノ)

  • 单向链表
    一个单向链表包含两个值: 当前节点的值和一个指向下一个节点的链接。
    在这里插入图片描述
    在这里插入图片描述
  • 双向链表

一个双向链表有三个整数值: 数值、向后的节点链接、向前的节点链接。
在这里插入图片描述
在这里插入图片描述

  • 循环链表
      头节点和尾节点被连接在一起的链表称为循环链表,这种方式在单向和双向链表中皆可实现。循环链表中第一个节点之前就是最后一个节点,反之亦然。
      在这里插入图片描述
    Java LinkedList(链表) 类似于 ArrayList,是一种常用的数据容器。
    与 ArrayList 相比,LinkedList 的增加和删除对操作效率更高,而查找和修改的操作效率较低。

以下情况使用 ArrayList :

  • 频繁访问列表中的某一个元素。
  • 只需要在列表末尾进行添加和删除元素操作。

以下情况使用 LinkedList :

  • 你需要通过循环迭代来访问列表中的某些元素。
  • 需要频繁的在列表开头、中间、末尾等位置进行添加和删除元素操作。

二、Linkedlist架构图

在这里插入图片描述
由上图你得知道:

  1. LinkedList 继承了 AbstractSequentialList 类。
  2. LinkedList 实现了 Queue 接口,可作为队列使用。
  3. LinkedList 实现了 List 接口,可进行列表的相关操作。
  4. LinkedList 实现了 Cloneable 接口,可实现克隆。
  5. LinkedList 实现了 java.io.Serializable 接口,即可支持序列化,能通过序列化去传输。

LinkedList 类位于 java.util 包中,使用前需要引入它,语法格式如下:

// 引入 LinkedList 类
import java.util.LinkedList; 
LinkedList<E> list = new LinkedList<E>();   // 普通创建方法
或者
LinkedList
  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/953576
推荐阅读
相关标签
  

闽ICP备14008679号