LinkedList链表
LinkedList
他是继承的List
双向链表
每当我们new一个linklist对象的时候
LinkedList linkedList = new LinkedList();
他会先创建一个LinkedList对象
这个LinkedList对象中有三个属性,
int size 表示链表的长度
first 表示链表第一个元素的内存地址
last 表示链表最后一个元素的内存地址
链表中每个元素,我们称之为Node节点,每个node其实也就是一个一个LinkedList类中的内部类,所以节点也有自己的属性
- 首先 每个节点(可看做一个对象) 都有自己的内存地址
- 有自己的值
- next 指向下一个节点的内存地址
- pre 指向上一个节点的内存地址
每个节点之间都是通过链来相连的,
他的遍历过程是,首先通过LinkedList对象访问到第一个节点的内存地址,然后再通过第一个node的next属性访问到下一个node
当我们通过index来获取链表中的对应的值的时候,指的是链表通过index次访问最终得到的node中的值,
访问的是第几个元素,执行的次数就是几次
双向链表可以双向访问数据,会自动判断节点是更靠近firstNode还是lastNode,再去访问指定元素的值
链表访问数据相对于数据来说较慢,但是增删改更快
增删改的时候,我们只需要将对应节点中的next或者pre所指向的内存地址修改,那么没有被引用的node就会被jvm当做垃圾回收
该node节点两边的链子将会自动删掉。
LinkedList链表的更多相关文章
- java集合之linkedList链表基础
LinkedList链表: List接口的链接列表实现.允许存储所有元素(包含null).使用频繁增删元素. linkedList方法: void addFirst(E e) 指定元素插入列表的开头 ...
- Java集合类之LinkedList链表
package com.test; import java.util.*; public class Demo7_3 { public static void main(String[] args) ...
- LinkedList -链表集合
package cn.learn.collection; import java.util.LinkedList; import java.util.Queue; /* java.util.xxx A ...
- Java学习之集合(LinkedList链表集合)
一.什么是链表集合,通过图形来看,比如33只知道它下一个是55 如果:现在要删除33的话,就是把55赋值给45,这样看它操作集合速度会非常快. 二.LinkedList特有方法 1.添加 addFir ...
- List容器-LinkedList链表
LinkedList--链表 特点: 删除,增加 用LinkedList性能高 层次查找不适合 查询用ArrayList 数组下标查找 插入和删除慢缺点是要做移位操作 总结:Link ...
- java LinkedList(链表)
LinkedList也像ArrayList一样实现了基本的List接口,但是它执行某些操作(在List的中间插入和移除)时比ArrayList更高效,但在随机访问方面却要逊色一些 LinkedList ...
- golang数据结构和算法之LinkedList链表
差不多自己看懂了,可以自己写测试了.:) LinkedList.go package LinkedList //"fmt" type Node struct { data int ...
- java实现链表
单链表 package com.voole.linkedlist; public class Test { public static void main(String[] args) { Linke ...
- ArrayList与LinkedList实现比较
1.ArrayList实现是基于数组来实现的,这可由ArrayList的源码看出: public class ArrayList<E> extends AbstractList<E& ...
- java源码学习(五)LinkedList
LinkedList [TOC] 一.定义 public class LinkedList<E> extends AbstractSequentialList<E> imple ...
随机推荐
- 一款HTML转Markdown格式的工具
Markdown格式不仅对写博客的人非常友好和方便,对AI也是如此. 目前AI大语言模型的输出基本都是Markdown格式,这就意味着AI是能充分理解Markdown格式的,这一点非常重要. Mark ...
- 保姆级教程——手把手教会你如何在Linux上安装Redis
一.Linux系统安装Redis(7.4.0) 注意: 全程是在root底下操作,当然也可以采用sudo 1.1 安装Redis依赖 Redis是基于C语言编写的,因此首先需要安装Redis所需要的g ...
- 在Java集合框架中,`Set`接口是一个重要的接口,它表示一个不包含重复元素的集合。常见的`Set`实现类有`HashSet`、`LinkedHashSet`和`TreeSet`。下面是关于`Set`接口的一些基本用法和方法介绍:
常用实现类 HashSet: 基于哈希表实现,元素无序. 插入.删除.查找操作的时间复杂度为O(1). LinkedHashSet: 继承自HashSet,并使用双向链表来维护元素的插入顺序. 保留元 ...
- C# 调用 Win10/11 文件关联对话框
方法一:调用未公开接口 IOpenWithLauncher Adobe Acrobat 应该是调用的未公开接口方法 [ComImport] [InterfaceType(ComInterfaceTyp ...
- MQTT协议发布和订阅的实现,一步步带你实现发布订阅服务。
MQTT协议 MQTT协议是基于TCP传输协议之上的应用层协议,全程Message Queuing Telemetry Transport.主要用于物联网设备间的通信,在低带宽.不稳定网络环境下的优势 ...
- IDEA target中没有class文件/target中有class没有yml文件/yml文件不显示叶子
target中没有class文件.表现为文件显示红波浪线,但是点进去自己又好了,但是编译会说找不到.点进入target文件夹发现没有class文件,只有yml文件或者什么都没有 解决方法:rebuil ...
- ESP32系列,IDF官方实例——外设:通用GPIO
示例位于 \examples\peripherals\gpio\generic_gpio 文件夹内 GPIO示例逻辑简单,直接看代码理解. /* GPIO示例 此示例代码位于公共域(或CC0许可,由您 ...
- 🎀dubbo 2.7.2 启动报错【Unsupported generic type false】排查
1.问题现象 dubbo服务启动时抛出异常Unsupported generic type false,但不影响服务正常发布. Caused by: java.lang.IllegalArgument ...
- python之“if __name__=="__main__"”的代表的意思和用法
创建下方脚本A def print_sum(a): print(a) print_sum(20) if __name__=="__main__": print("test ...
- 《Universal Number Posit Arithmetic Generator on FPGA》(一)
A parameterized Verilog HDL is constructed for each unit which takes posit word size (N) and posit e ...