我是靠谱客的博主 耍酷诺言,最近开发中收集的这篇文章主要介绍LinkedList详解前言一、使用二、创建机制详解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、使用
  • 二、创建机制详解


前言

LinkedList 实现了 List 继承了Collection
class LinkedList extends AbstractSequentialList
implements List, Deque, Cloneable, java.io.Serializable
单列集合:
可添加重复元素,例如: 多个null
底层实现了双向链表合双端队列的特点
线程不安全,没有实现同步

提示:以下是本篇文章正文内容,下面案例可供参考

一、使用

  • 创建
// 创建
LinkedList<Object> objects = new LinkedList<>();
objects.add("1");
objects.add(2);
objects.add(3);
System.out.println(objects.toString());// 调用了AbstractCollection<E> 的toString方法
objects.add(); //添加元素,返回boolean
  • 删除

System.out.println(objects); //[1, 2, 3, 3, null, null, null]
objects.remove(); // 删除第一个元素
objects.remove(1); //删除该列表中指定位置的元素。
objects.remove("1"); // 列表中删除指定元素的第一个出现(如果存在)。
objects.removeFirst() ; // 删除头节点
objects.removeLast() ; // 删除尾节点
System.out.println(objects); //[3, null, null]

objects.add("1"); //[1]
System.out.println(objects);
objects.set(0,"2"); //通过下标,更改元素
System.out.println(objects); //[2]
objects.indexOf(Object) //元素存在返回下标,不存在返回-1

二、创建机制详解

LinkedList<Object> objects = new LinkedList<>();

构造器初始化

protected transient int modCount = 0; 记录修改次数
transient int size = 0; 初始化大小为0
public LinkedList() {
}
初始化完成

linkedList 底层
底层运维这一个头结点和尾节点
用一个Node 内部类做存储


transient Node<E> first;
transient Node<E> last;

Node 类


private static class Node<E> {
E item;
// 当前元素
Node<E> next; // 指向下一个元素
Node<E> prev; //指向上一个元素
Node(Node<E> prev, E element, Node<E> next) {
this.item = element;
this.next = next;
this.prev = prev;
}
}

add()添加分析

 public boolean add(E e) {
linkLast(e); // 底层用linkLast添加
return true;
}

linkLast(e);


void linkLast(E e) {
final Node<E> l = last; // 标记尾元素
final Node<E> newNode = new Node<>(l, e, null); //l = prev , 当前元素的prev = l
last = newNode; // 更新尾元素
if (l == null) // null,第一次添加
first = newNode;
else
l.next = newNode; // 用尾元素的next 指向 传入元素
size++;
modCount++;
}
// 返回添加完成

最后

以上就是耍酷诺言为你收集整理的LinkedList详解前言一、使用二、创建机制详解的全部内容,希望文章能够帮你解决LinkedList详解前言一、使用二、创建机制详解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部