当前位置: 首页 > news >正文

【数据结构与算法】Java描述:第二节:LinkedList 链表

一、链表的概念与结构

1.1 概念:

通俗的来说,链表是由一个个结点连接起来的就叫链表。

1.2 结构:

链表存储的数据 在 物理上是不一定连续的,它是由前面链接后面,一个个连起来的。

二、Java底层的 LinkedList 

2.1 Java底层构成:

LinkedList 的底层是 双向链表结构, 由于链表没有将元素存储在连续的空间中,元素存储在单独的j结点中,然后通过引用将 结点 连接起来了。

因此在在任意位置 插入 或者 删除 元素时,不需要搬移元素,效率比较高。

LinkedList 中包含 LinkNode 类

从上图我们可以看到 每个结点都有三部分构成,

分别是数据  (elem),结点的上一个 (prev),结点的下一个(next)

2.2 链表的构造方法:

和顺序表类似,可以传入另一个链表 作为参数来创建新的链表

三、链表相关方法

3.1 链表中的方法:

3.2 链表的遍历

public static void main(String[] args) {LinkedList<Integer> linkedList2 = new LinkedList<>();linkedList2.add(1);//默认都是尾插linkedList2.addLast(3);linkedList2.addLast(4);linkedList2.addLast(5);System.out.println(linkedList2);//迭代器反向遍历System.out.println("===== ListIterator ====");ListIterator<Integer> lit2 =  linkedList2.listIterator(linkedList2.size());while (lit2.hasPrevious()) {System.out.print(lit2.previous()+" ");}System.out.println();//迭代器正向遍历,属于子类System.out.println("===== ListIterator ====");ListIterator<Integer> lit =  linkedList2.listIterator();while (lit.hasNext()) {System.out.print(lit.next()+" ");}System.out.println();//迭代器正向遍历System.out.println("===== Iterator ====");Iterator<Integer> it = linkedList2.iterator();while (it.hasNext()) {System.out.print(it.next()+" ");}System.out.println();//for each遍历System.out.println("=====for each====");for(Integer x : linkedList2) {System.out.print(x +" ");}System.out.println();//for循环遍历System.out.println("=====for====");for (int i = 0; i < linkedList2.size(); i++) {System.out.print(linkedList2.get(i) +" ");}System.out.println();}

四、顺序表与链表的对比

顺序表 与 链表 的区别主要体现在 查询 与 插入删除 的时间效率上,因此它们两个的使用场景不一样。

相关文章:

【数据结构与算法】Java描述:第二节:LinkedList 链表

一、链表的概念与结构 1.1 概念&#xff1a; 通俗的来说&#xff0c;链表是由一个个结点连接起来的就叫链表。 1.2 结构&#xff1a; 链表存储的数据 在 物理上是不一定连续的&#xff0c;它是由前面链接后面&#xff0c;一个个连起来的。 二、Java底层的 LinkedList 2.1…...

LLM run

lmstudio lmstudio ollama ollama N 卡使用自带UI gpu加速推理 ,选择满足条件的&#xff0c; ds模型选择列表 https://ollama.com/library/deepseek-r1 a卡当前支持的显卡型号 I卡 gpu加速配置 2025.3 intel Official project optimization https://www.modelscope.cn/m…...

k8s面试题总结(十)

1.为什么HDFS不适合存储小文件&#xff1f; 元数据存储在NameNode内存中&#xff0c;一个节点的内存是有限的。存储大量的小文件会消耗过多的寻道时间 同等大小一个大文件的访问速度一定比多个小文件访问速度快 3.NameNode存储block的数量是有限的 比如你一个block元数据需要消…...

android中activity1和activity2中接收定时消息

android中activity1和activity2中接收定时消息 业务类 import java.util.Timer; import java.util.TimerTask;public class MyAnager {private MyAnager() {}private static MyAnager instance;//回调接口onRecvTaskpublic interface OnMsgListener {void onRecvTask(String a…...

Non-Homophilic Graph Pre-Training and Prompt Learning

Non-Homophilic Graph Pre-Training and Prompt Learning KDD25 ​#paper/⭐#​ 目的&#xff1a;对异配图进行prompt ‍ ​​ 方法 邻居节点的综合嵌入 s v 1 ∣ V ( S v ) ∣ ∑ u ∈ V ( S v ) h u ⋅ s i m ( h u , h v ) , \mathbf{s}_{v}\frac{1}{|V(S_{v})|}\su…...

Ollama 框架本地部署教程:开源定制,为AI 项目打造专属解决方案!

Ollama 是一款开源的本地大语言模型&#xff08;LLM&#xff09;运行框架&#xff0c;用于管理和运行语言模型。具有以下核心特点&#xff1a; 开源可定制&#xff1a;采用 MIT 开源协议&#xff0c;开发者能自由使用、阅读源码并定制&#xff0c;可根据自身需求进行功能扩展和…...

unittest框架 核心知识的系统复习及与pytest的对比

1. unittest 介绍 是什么&#xff1a;Python 标准库自带的单元测试框架&#xff0c;遵循 xUnit 架构&#xff08;类似Java的JUnit&#xff09;。 核心概念&#xff1a; TestCase&#xff1a;测试用例的基类&#xff0c;所有测试类需继承它。 TestSuite&#xff1a;测试套件&a…...

vue面试宝典之二

39.vue2和vue3中源码是如何解析模版的 new vue&#xff08;&#xff09;的时候实例化了类之后根据传进去的option进行模版的类型div还是text还是啥进行匹配&#xff0c;同时拿到节点的值进行绑定&#xff0c;比如正则匹配{{}}将匹配到的变量拿去跟option中的data查找到具体的值…...

ESLint 深度解析:原理、规则与插件开发实践

在前端开发的复杂生态中&#xff0c;保障代码质量与规范性是构建稳健、可维护项目的基石。ESLint 作为一款强大的代码检查工具&#xff0c;其默认规则与插件能满足多数常见需求&#xff0c;但面对特定团队规范或项目独特要求&#xff0c;自定义 ESLint 插件便成为有力的扩展手段…...

洛谷P1091

题目如下 思路 谢谢观看...

随机树算法 自动驾驶汽车的路径规划 静态障碍物(Matlab)

随着自动驾驶技术的蓬勃发展&#xff0c;安全、高效的路径规划成为核心挑战之一。快速探索随机树&#xff08;RRT&#xff09;算法作为一种强大的路径搜索策略&#xff0c;为自动驾驶汽车在复杂环境下绕过静态障碍物规划合理路径提供了有效解决方案。 RRT 算法基于随机采样思想…...

江科大51单片机笔记【9】DS1302时钟可调时钟(下)

在写代码前&#xff0c;记得把上一节的跳线帽给插回去&#xff0c;不然LCD无法显示 一.DS1302时钟 1.编写DS1302.c文件 &#xff08;1&#xff09;重新对端口定义名字 sbit DS1302_SCLKP3^6; sbit DS1302_IOP3^4; sbit DS1302_CEP3^5;&#xff08;2&#xff09;初始化 因为…...

ssm_mysql_暖心家装平台

收藏关注不迷路&#xff01;&#xff01; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff08;免费咨询指导选题&#xff09;&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;希望帮助更多…...

一周学会Flask3 Python Web开发-SQLAlchemy简介及安装

锋哥原创的Flask3 Python Web开发 Flask3视频教程&#xff1a; 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili SQLAlchemy是Python编程语言下的一款开源软件。提供了SQL工具包及对象关系映射&#xff08;ORM&#xff09;工具&#xff0c;…...

< 自用文儿 > DELETED 设置速读 in Ubuntu24

systemctl 和 DELETED&#xff1a; 配置文件&#xff1a; vi /etc/systemd/system/ DELETED.service [Unit] DescriptionV2Ray Service Documentation DELETED Afternetwork.target nss-lookup.target[Service] #Usernobody CapabilityBoundingSetCAP_NET_ADMIN CAP_NET_BIN…...

自动化同步多服务器数据库表结构

当项目每次进行版本升级的时候&#xff0c;如果在这次迭代中涉及表结构变更&#xff0c;需要将不同的生产环境下&#xff0c;都需要同步表结构的DDL语句&#xff0c;比较麻烦&#xff0c;而且还有可能忘记同步脚本&#xff0c;导致生产环境报错.... 该方案采用SpringBootMybat…...

深入理解 HTML 元素:构建网页的基础

在网页开发的领域中&#xff0c;HTML&#xff08;超文本标记语言&#xff09;犹如一座大厦的基石&#xff0c;支撑起整个网页的结构与内容呈现。而 HTML 元素&#xff0c;则是构成这座基石的基本单位。今天&#xff0c;就让我们一同深入探索 HTML 元素的奥秘。 HTML 元素的构成…...

黄昏时间户外街拍人像Lr调色教程,手机滤镜PS+Lightroom预设下载!

调色介绍 黄昏时分有着独特而迷人的光线&#xff0c;使此时拍摄的人像自带一种浪漫、朦胧的氛围 。通过 Lr 调色&#xff0c;可以进一步强化这种特质并根据不同的风格需求进行创作。Lr&#xff08;Lightroom&#xff09;作为专业的图像后期处理软件&#xff0c;提供了丰富的调色…...

OCPP扩展机制与自定义功能开发:协议灵活性设计与实践 - 慧知开源充电桩平台

OCPP扩展机制与自定义功能开发&#xff1a;协议灵活性设计与实践 引言 OCPP作为开放协议&#xff0c;其核心价值在于平衡标准化与可扩展性。面对不同充电桩厂商的硬件差异、区域能源政策及定制化业务需求&#xff0c;OCPP通过**扩展点&#xff08;Extension Points&#xff09…...

哈希查找与深度优先遍历深度解析

一、算法基础概念对比 1.1 哈希查找的本质特征 哈希查找是一种基于哈希函数直接访问数据结构的查找技术&#xff0c;其核心在于通过数学映射建立键值与存储位置的直接关联。理想情况下时间复杂度可达O(1)&#xff0c;实际应用中通过冲突处理机制实现近似常数时间的查找效率。…...

别再只查‘待办’了!Flowable任务查询的三种高级场景:拾取、归还与候选组权限控制详解

Flowable任务管理的三大高阶场景&#xff1a;从候选池到个人待办的完整控制策略 当我们在处理业务流程自动化时&#xff0c;任务管理往往是最容易被简化的环节。大多数开发者止步于基础的待办列表查询&#xff0c;却忽视了任务流转过程中的精细控制。本文将带您深入Flowable任务…...

指挥OpenClaw抓取数据折腾了一夜,我终于想到了邪修玩法

这段时间玩小龙虾玩得真上头&#xff0c;突然想起之前一直想要统计公众号的数据。 这工作交给小龙虾妥妥能胜任啊&#xff01;但是吧……实际上执行出来的结果却不是这样的。 因为小白本地使用的是OpenClawAtomgit的方案&#xff0c;Atomgit主打一个不费一分钱&#xff0c;免…...

C语言基础:LiuJuan20260223Zimage嵌入式开发入门

C语言基础&#xff1a;LiuJuan20260223Zimage嵌入式开发入门 1. 学习目标与前置知识 如果你是刚开始接触嵌入式开发的C语言初学者&#xff0c;这篇文章就是为你准备的。我们将从最基础的C语言语法开始&#xff0c;一步步带你了解如何在嵌入式环境中使用C语言进行开发。不需要…...

PyTorch 2.8镜像实战落地:教育机构AI教学平台(图文+视频+LLM)集成方案

PyTorch 2.8镜像实战落地&#xff1a;教育机构AI教学平台&#xff08;图文视频LLM&#xff09;集成方案 1. 教育AI平台的技术挑战与解决方案 现代教育机构在构建AI教学平台时面临三大技术难题&#xff1a;多模态内容生成、算力资源管理和教学场景适配。PyTorch 2.8深度学习镜…...

软考软件评测师备考避坑指南:过来人告诉你这5个章节最容易丢分(附2024最新考纲解析)

软考软件评测师备考避坑指南&#xff1a;5个高频失分章节深度解析 第一次打开软件评测师考纲时&#xff0c;我盯着密密麻麻的知识点列表发愣——这哪是考试大纲&#xff0c;分明是软件工程领域的百科全书。作为经历过三次备考最终以87分通过的老考生&#xff0c;我深刻理解那种…...

保姆级避坑指南:在Ubuntu 22.04上为ROS2 Humble编译OpenCV 4.2.0和cv_bridge

深度解析&#xff1a;Ubuntu 22.04下ROS2 Humble与OpenCV 4.2.0的精准版本匹配实战 当视觉SLAM遇上ROS2生态&#xff0c;版本依赖就像一场精密的外科手术。本文将带你穿透ORB-SLAM3等视觉算法与ROS2 Humble环境整合时的核心痛点——特别是OpenCV 4.2.0与cv_bridge的版本锁定机…...

Phi-4-mini-reasoning开发者调试手册:Chainlit后端日志定位、错误堆栈分析

Phi-4-mini-reasoning开发者调试手册&#xff1a;Chainlit后端日志定位、错误堆栈分析 1. 模型简介与部署验证 Phi-4-mini-reasoning 是一个基于合成数据构建的轻量级开源模型&#xff0c;专注于高质量、密集推理的数据&#xff0c;并进一步微调以提高更高级的数学推理能力。…...

Scratch飞翔小鸟游戏制作教程:从零开始打造你的第一个像素风小游戏

Scratch飞翔小鸟游戏制作教程&#xff1a;从零开始打造你的第一个像素风小游戏 当孩子们第一次接触编程时&#xff0c;往往会被复杂的代码和抽象的概念吓退。而Scratch就像一扇通往创意世界的大门&#xff0c;用积木式的编程方式让游戏开发变得触手可及。今天&#xff0c;我们将…...

Ubuntu 22.04上,用Cephadm 17.2.0搭建单节点Ceph集群的保姆级避坑指南

Ubuntu 22.04单节点Ceph集群实战&#xff1a;从零到生产级部署的17个关键细节 当你在Ubuntu 22.04上尝试用Cephadm搭建单节点Ceph集群时&#xff0c;是否遇到过这些场景&#xff1a;bootstrap卡在某个步骤超过半小时、OSD设备明明存在却显示"no available devices"、…...

魔兽世界插件开发5分钟速成:从零掌握API查询与宏命令管理终极指南

魔兽世界插件开发5分钟速成&#xff1a;从零掌握API查询与宏命令管理终极指南 【免费下载链接】wow_api Documents of wow API -- 魔兽世界API资料以及宏工具 项目地址: https://gitcode.com/gh_mirrors/wo/wow_api 魔兽世界API文档平台与宏工具是一个专为《魔兽世界》玩…...