java集合(十) ---- LinkedList 类

目录

[十、LinkedList 类](#十、LinkedList 类)

[10.1 位置](#10.1 位置)

[10.2 特点](#10.2 特点)

[10.3 与 ArrayList 的区别](#10.3 与 ArrayList 的区别)

[10.4 构造方法](#10.4 构造方法)

[10.5 常用方法](#10.5 常用方法)


十、LinkedList 类

10.1 位置

LinkedList 类位于 java.util 包下

10.2 特点

  1. 是 List 接口的实现类
  2. 是 Deque 接口的实现类
  3. 底层使用双向循环链表结构

10.3 与 ArrayList 的区别

  1. ArrayList 类底层是数组,线性顺序存储。LinkedList 类底层是链表结构,非连续、非顺序存储
  2. ArrayList 类适合用于查询多的地方。LinkedList 类适合用于增删多的地方

10.4 构造方法

|----|------------------------------------------------|
| | public LinkedList() |
| 作用 | 创建一个空的 LinkedList 对象 |
| ||
| | public LinkedList(Collection<? extends E> c) |
| 作用 | 创建一个包含指定集合 c 的 LinkedList 对象 |

10.5 常用方法

|-----|-----------------------------------------------------------------------------------|
| | public void addFirst(E e) |
| | public boolean offerFirst(E e) |
| 方法名 | addFirst() offerFirst() |
| 作用 | 将指定元素插入到当前集合的开头 |
| ||
| | public void addLast(E e) |
| | public boolean offer(E e) |
| | public boolean offerLast(E e) |
| 方法名 | addLast() offer() offerLast() |
| 作用 | 将指定元素插入到当前集合的结尾 |
| 注意 | 此方法等效于 add(E e) |
| ||
| | public E getFirst() |
| | public E peekFirst() |
| 方法名 | getFirst() peekFirst() |
| 作用 | 获取当前集合的第一个元素 |
| ||
| | public E getLast() |
| | public E peekLast() |
| 方法名 | getLast() peekLast() |
| 作用 | 获取当前集合的最后一个元素 |
| ||
| | public E removeFirst() |
| | public E pollFirst() |
| 方法名 | removeFirst() pollFirst() |
| 作用 | 移除并返回当前集合的第一个元素 |
| ||
| | public E removeLast() |
| | public E pollLast() |
| 方法名 | removeLast() pollLast() |
| 作用 | 移除并返回当前集合的最后一个元素 |
| ||
| | public boolean removeFirstOccurrence(Object o) |
| 方法名 | removeFirstOccurrence() |
| 作用 | 从当前集合中移除第一次出现的指定元素 |
| ||
| | public boolean removeLastOccurrence(Object o) |
| 方法名 | boolean removeLastOccurrence() |
| 作用 | 从当前集合中移除最后一次出现的指定元素 |
| ||
| 说明一 | 其他常用方法参考 List 接口 |
| 说明二 | 链表不存在索引。但是可以调用 get(index) 来获取指定索引上的元素。这是因为 LinkedList 类在底层提供了一个 LisItr 内部类来提供索引 |


相关推荐
彭于晏Yan12 分钟前
OkHttp 与 RestTemplate 技术选型对比
java·spring boot·后端·okhttp
jzlhll12313 分钟前
Kotlin 协程高级用法之 NonCancellable
android·开发语言·kotlin
金銀銅鐵22 分钟前
[Java] 如何理解 class 文件中字段的 descriptor?
java·后端
5008426 分钟前
Graph Engine 是什么,为什么需要它
java·人工智能·性能优化·ocr·wpf
我是唐青枫26 分钟前
C#.NET YARP + OpenTelemetry:网关链路追踪实战
开发语言·c#·.net
芯芯点灯28 分钟前
gd32f303烧录提示Flash Timeout. Reset the Target and try it again.;
开发语言·前端·javascript
未若君雅裁29 分钟前
服务雪崩、降级、熔断与服务保护
java·微服务
枫叶丹432 分钟前
【HarmonyOS 6.0】Enterprise Space Kit:空间管理服务深入解析
开发语言·华为·harmonyos
就叫_这个吧1 小时前
Java实现线程间的通讯--使用synchronized关键字和JUC方式实现
java·开发语言