当前位置: 首页 > 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();}

四、顺序表与链表的对比

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

http://www.lryc.cn/news/547681.html

相关文章:

  • LLM run
  • k8s面试题总结(十)
  • android中activity1和activity2中接收定时消息
  • Non-Homophilic Graph Pre-Training and Prompt Learning
  • Ollama 框架本地部署教程:开源定制,为AI 项目打造专属解决方案!
  • unittest框架 核心知识的系统复习及与pytest的对比
  • vue面试宝典之二
  • ESLint 深度解析:原理、规则与插件开发实践
  • 洛谷P1091
  • 随机树算法 自动驾驶汽车的路径规划 静态障碍物(Matlab)
  • 江科大51单片机笔记【9】DS1302时钟可调时钟(下)
  • ssm_mysql_暖心家装平台
  • 一周学会Flask3 Python Web开发-SQLAlchemy简介及安装
  • < 自用文儿 > DELETED 设置速读 in Ubuntu24
  • 自动化同步多服务器数据库表结构
  • 深入理解 HTML 元素:构建网页的基础
  • 黄昏时间户外街拍人像Lr调色教程,手机滤镜PS+Lightroom预设下载!
  • OCPP扩展机制与自定义功能开发:协议灵活性设计与实践 - 慧知开源充电桩平台
  • 哈希查找与深度优先遍历深度解析
  • 【powerjob】 powerjobserver注册服务IP错误
  • Flutter底层实现
  • 亚信安全发布2024威胁年报和2025威胁预测
  • 【YOLOv12改进trick】StarBlock引入YOLOv12,创新涨点优化,含创新点Python代码,方便发论文
  • Android MVI架构模式详解
  • Spring AI Alibaba + Ollama:国产大模型DeepSeek LLM的低成本AI应用开发认知
  • 《2025软件测试工程师面试》功能测试篇
  • 蓝桥杯2024年第十五届省赛真题-传送阵
  • 非线性优化--NLopt算法(Android版本和Python示例)
  • 2025-03-06 ffmpeg提取SPS/PPS/SEI ( extradata )
  • 海量数据融合互通丨TiDB 在安徽省住房公积金监管服务平台的应用实践