Java LinkedList 讲解

怀旧网个人博客网站地址:怀旧网,博客详情:Java LinkedList 讲解

LinkedList 简介

特有方法

主要作用就是用来操作双向链表的首位指针

源码分析

  1. 可以看到LinkedList内部的属性就这么三个--第一个size是用来记录当前数据元素数量,然后frist和last就是分别用来记录头节点和尾节点的,并且数据类型都为Node类型

  2. Node 作为LinkedList的内部类,里面存储了当前元素的值item,和前驱节点prev和后继节点next连个指针

  3. 在想LinkedList中添加元素的时候默认调用

  1. 代码作用创建一个新的节点,然后将新节点的前驱节点设置为当前的尾节点,后继节点设置为null,然后将当前的尾节点的后继节点设置为当前的新创建节点。然后将当前的新创建节的地址赋值给当前尾节点。但是如果当前的尾节点为空的时候,说明链表中一个元素都没有。然后就直接将心节点设置为头节点。最后让链表长度加1,并且操作次数在加1。完成默认的add添加元素方法。

  2. 然后其他的方法和我们正常的数据结构链表操作大致一样,参考双向链表:网页链接

特有方法测试

addFirst 方法

  • 就是直接创建一个新的节点然后让新节点的next指向原有的first位置,并将新的node的地址赋值给first头指针。

    public static void main(String[] args){
    LinkedList<Integer> linkedList = new LinkedList<>();

      linkedList.addFirst(1);
    
      System.out.println(linkedList);
    

    }


addLase 方法

  • 同add方法一样可以参考add方法源码分析。(底层调用的方法都是同一个)

    public static void main(String[] args){
    LinkedList<Integer> linkedList = new LinkedList<>();

      linkedList.addFirst(1);
    
      linkedList.addLast(2);
    
      System.out.println(linkedList);
    

    }


其他方法测试

public static void main(String[] args){
    LinkedList<Integer> linkedList = new LinkedList<>();

    linkedList.addFirst(1);

    linkedList.addLast(2);

    System.out.println(linkedList.getFirst());
    System.out.println(linkedList.getLast());

    linkedList.removeFirst();
    linkedList.removeLast();

    System.out.println(linkedList);
}

注意事项

如果当前链表没有数据,执行删除同样会报错,以及get系列方法同样会报错-这边就不做演示了、

相关推荐
汇匠源2 分钟前
基于Java的小程序电商商城开源设计源码
java·小程序·springboot·团队开发·源代码管理
嵌入式系统工程师3 分钟前
11.25c++继承、多态
开发语言·c++
哎呦没10 分钟前
Spring Boot与林业产品推荐系统的融合
java·spring boot·后端
大梦百万秋10 分钟前
云原生后端开发:构建现代化可扩展的服务
后端
gorgor在码农12 分钟前
redis 底层数据结构
java·数据库·redis
Erosion202019 分钟前
JAVA WEB和Tomcat各组件概念
java·tomcat
G丶AEOM22 分钟前
JVM中TLAB(线程本地分配缓存区)是什么
java·jvm
《源码好优多》26 分钟前
基于Java Springboot华为数码商城交易平台
java·开发语言·spring boot
往日情怀酿做酒 V176392963835 分钟前
Django基础之路由
后端·python·django
康熙38bdc1 小时前
Linux 线程互斥
linux·运维·开发语言