Java集合专题(六):List接口的实现类之LinkedList

一、LinkedList的基本介绍

1.1、LinkedList底层结构
  1. LinkedList底层实现了双向链表双端队列特点。
  2. 可以添加任意元素(元素可以重复),包括null。
  3. 线程不安全,没有实现同步。
1.2、LinkedList底层操作机制
  1. LinkedList底层维护了一个双向链表。

  2. LinkedList中维护了两个属性 first 和 last 分别指向首节点和尾节点。

在这里插入图片描述

  1. 每个节点(Node对象),里面又维护了prev、next、item三个属性,其中通过 prev 指向前一个,通过 next 指向后一个节点。最终实现双向链表。
//定义一个Node类, Node对象  表示双向链表的一个节点
class Node{
    public Object item;         //真正存放数据的地方
    public Node next;           //指向后一个节点
    public Node pre;            //指向前一个节点

    public Node(Object name){
        this.item = name;
    }

    public String toString(){
        return "Node name=" + item;
    }
}
  1. 所以LinkedList的元素的添加和删除,不是通过数组完成的,相对来说效率较高。

二、源码分析

2.1、添加元素
LinkedList linkedList = new LinkedList();
linkedList.add(1);

在这里插入图片描述

2.2、删除元素
LinkedList linkedList = new LinkedList();
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
linkedList.add(4);

linkedList.remove();//默认删除的是集合中的第一个元素

LinkedList是基于双向链表实现的集合,在删除元素时也跟双向链表一致

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月光旅人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值