java集合-linkedlist

为什么要用LinkedList?

我们在现实开发中我们都是会大量使用到数组以及动态的ArrayList类。然而,数组和数组列表都有一个重大的缺陷。

这就是从数组的中间位置删除一个元素要付出很大的代价,其原因是数组中处于被删除元素之后的所有元素都要向数组的前端移动。在数组中间的位置上插入一个元素也是如此。

那么LinkedList(链表)就能解决了这个问题尽管数组在连续的存储位置上存放对象引用,但链表却将每个对象存放在独立的节点中。每个节点还存放着序列中下一个结点的引用。

LinkedList

LinkedList是一个实现了 List 接口和 Deque 接口的双向链表。

有关索引的操作可能从链表头开始遍历到链表尾部,也可能从尾部遍历到链表头部,这取决于看索引更靠近哪一端。

LinkedList不是线程安全的,如果想使LinkedList变成线程安全的,可以使用如下方式

List list=Collections.synchronizedList(new LinkedList(...));

LinkedList构造方法

LinkedList()
构造一个空列表

LinkedList(Collection<? extends E> c)
构造一个包含指定 collection 中的元素的列表,这些元素按其 collection 的迭代器返回的顺序排列。

LinkedList常用方法介绍

public boolean add(Object element)
向链表末尾添加一个新节点,该节点中的数据是参数 element 指定的对象。

public void add(int index,Object element)

向链表指定位置添加一个新节点,该节点中的数据是参数 element 指定的对象

public void addFirist(Object element)

向链表表头添加一个新节点,该节点中的数据是参数 element 指定的对象

public void addLast(Object element)

向链表表尾添加一个新节点,该节点中的数据是参数 element 指定的对象

public Object removeFirst()

删除第一个节点并返回这个节点中的对象

public Object removeLast()

删除最后一个节点并返回这个节点中的对象

public Object remove(int index)

删除指定位置的节点

public Object get(int index)

得到指定位置的节点

public Object getFirst()

得到链表第一个节点的对象

public Object getLast()

得到链表最后一个节点的对象

int indexOf(Object element)

返回节点对象element在链表中首次出现的位置,如果链表中无此节点的对象则返回-1

public int lastIndexOf(Object element)

返回节点对象element在链表中最后出现的位置,如果链表中无此节点的对象则返回-1

public Object set(int index,Object element)

将当前链表index位置节点中的对象替换成参数element指定的对象,返回被替换对象

public int size()

返回链表的长度即节点个数

public boolean contains(Object element)

判断链表节点对象中是否含有element

posted @   幻影黑子  阅读(141)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示