LinkedList 对比 ArrayList 的区别

2023-11-13

LinkedList
底层是双向链表

  1. 基于双向链表,无需连续内存
  2. 随机访问慢(要沿着链表遍历)
  3. 头尾插入删除性能高
  4. 占用内存多

ArrayList
底层是数组
5. 基于数组,需要连续内存
6. 随机访问快(指根据下标访问)
7. 尾部插入、删除性能可以,其它部分插入、删除都会移动数据,因此性能会低
8. 可以利用 cpu 缓存,局部性原理

要注意LinkedList随机增删效率也不是特别高的,因为你要随机增删一定是要遍历找到这个元素的,这个遍历也是需要时间的。数组的话就是不但要找到元素而且要删除后还要移动其他的元元素。
ArrayList尾部插入性能甚至超过了LinkedList,中间插入也不比LinkedList差。只是头部插入可能性能比较低,所以实际开发中ArrayList比LinkedList用得多。

由于局部性原理,LinkedList会占用大量的内存空间。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LinkedList 对比 ArrayList 的区别 的相关文章

随机推荐

  • 关于使用快慢指针进行单向链表环存在性判定的若干问题的进一步思考

    文章目录 面试官问这个问题的目的是什么 快慢指针的工作原理 快慢指针究竟几步可以定位环 快指针的速度只能是双倍速么 其他判定单向链表环路的方法 小结 费曼算法 1 写下这个问题 2 真正地努力思考 3 写下解决办法 物理学家Murray G
  • 苹果手机怎样批量删除照片

    https jingyan baidu com article 851fbc37953b183e1f15ab02 html 喜欢使用苹果手机拍照的朋友 会经常删照片 那怎样操作更快呢 今天就为大家分享苹果手机怎样批量删除照片 工具 原料 苹
  • git命令详解

    一 简介 git作为应用广泛的一种分布式版本控制系统 其与svn比较最大的差别就是一个是分布式 一个是集中式 git在每个开发者的本地有一个完整的版本库 当在本地处理工作时 无需联网便可修改提交 当需要与其它开发者交互时 只需要提交自己的修
  • 陀螺研究院×BSN丨解析区块链视角下的消费者权益保护访谈全文发布

    3月是我国消费者权益保护月 在近日播出的3 15晚会中 央视曝光了科勒卫浴 宝马 Max Mara多家知名商店安装人脸识别摄像头 手机清理软件泄露老人隐私 瘦肉精羊等多个极其恶劣的消费者权益侵害行为 可以看出 随着数据时代的渐行渐近 消费者
  • switch怎么切换服务器账号,任天堂eshop如何换区 switch账号如何切换其他服地区

    任天堂eshop里面的游戏因为注册地区不同 游戏的售价也相应不同 因为汇率的影响 游戏的售价产生了高低差价 这种差价可以让玩家买到较低价的游戏 操作起来方法就是在switch里进行账号切换 怎样切换任天堂账号地区呢 一起来看下吧 1 首先需
  • /usr/lib64/sa/sa1脚本解释

    usr lib64 sa sa1脚本解释 前言 脚本原文 脚本解释 附 前言 这个脚本是 Linux 系统上的 sysstat 工具的一部分 在 etc cron d sysstat这个定时任务下执行 用来收集系统性能数据 需要配合 etc
  • 休眠后网络无法自动连接——网卡属性没有电源管理选项

    问题描述 1 每次休眠过后网卡都是无法连接网络的状态 需要手动禁用 gt 开启网卡后才会恢复正常 2 同时网卡属性里没有电源管理选项 环境 Win10 网卡设备 realtek pcie gbe family controller 解决办法
  • 遗传算法超详细图解

    遗传算法 Genetic Algorithm 顾名思义 是一种基于自然选择原理和自然遗传机制的启发式搜索算法 该算法通过模拟自然界中生物遗传进化的自然机制 选择 交叉和变异操作 将好的遗传基因 最优目标 不断遗传给子代 使得后代产生最优解的
  • webpack对js文件和eslint做缓存处理

    一 什么是webpack的cache Webpack的缓存通常是指模块缓存和构建缓存 1 模块缓存 通过缓存模块的内容 可以避免重复读取和解析同一个模块的开销 Webpack默认是开启模块缓存的 即第一次编译时会将已经加载的模块信息缓存到内
  • MAX30102血氧模块检测心率和血氧

    1 完成 CubeMX初始化配置 1 1 利用CubeMX完成HAL库工程模板和初始化 通过选择芯片型号创建CubeMX工程 在弹出的对话框中输入开发板上的芯片型号 STM32F103RB 在右侧筛选栏中选择Tx型 即开发板上芯片所用的LQ
  • 7个高清图片素材网,免费/可商用

    1 菜鸟图库 https www sucai999 com pic html v NTYwNDUx 菜鸟图库是一个综合性素材网站 这里面有很多设计 图片 视频 音频等素材 图片素材全部都是高清无水印 基本都能免费下载 还有部分素材是可以商用
  • c#输出当前日期和当前时间_如何在C#中的当前日期时间添加小时数?

    我们在C 中使用DateTime类的AddHours 方法 Syntax 句法 DateTime DateTime AddHours double 以下C 代码在当前日期时间添加小时数 using System namespace Cons
  • 父类和子类

    尽管很多知名译本都把C 面向对象里有继承关系的类称作基类和派生类 但人们很多口语化的表达里还是叫他们父类和子类 毕竟 你继承了我嘛 非亲非故的 谁让你继承 恰逢今天父亲节 我们就来聊聊C 里对父亲和儿子这一关系的设计 读程序 品人生 什么东
  • 优雅/粗暴地关闭TCP连接--close-shutdown的选择

    一个 TCP 连接需要经过三次握手进入数据传输阶段 最后来到连接关闭阶段 在最后的连接关闭阶段 我们需要重点关注的是 半连接 状态 因为 TCP 是双向的 这里说的方向 指的是数据流的写入 读出的方向 比如客户端到服务器端的方向 指的是客户
  • Lua封装延时执行函数

    延时执行函数 function delayTimeGuideEvent target func times 延迟时间执行函数 local delaytime 1 if times then delaytime times end getRo
  • Spring入门学习—Spring IOC

    一 什么是Spring Spring是一个轻量级的IOC DI和AOP容器的开源框架 目标 使现有技术更加易用 推进编码最佳实践 内容 IOC容器 AOP实现 数据访问支持 简化JDBC ORM框架 声明式事务 Web集成 设计理念 面向B
  • 平凡的世界

    1975年的二三月间 一个平平常常的日子 细蒙蒙的雨丝夹着一星半点的雪花 正纷纷淋淋地向大地飘洒着 时令已快到惊蛰 雪当然再不会存留 往往还没等落地 就已经消失得无影无踪了 黄土高原严寒而漫长的冬天 看来就要过去 但那真正温暖的春天 还远远
  • gitcode代码仓库的基本使用

    gitcode代码仓库的基本使用 一 gitcode官网简介 二 本地配置 1 安装git工具 2 配置本地git信息 3 查看git个人信息 二 创建本地仓库 1 创建本地工作区 2 将文件放入暂存区 3 将暂存区文件放入本地仓库 4 查
  • AutoML-第一章 超参数优化

    第一章 超参数优化 摘要 最近对具有许多超参数的复杂且计算成本很高的机器学习模型 例如自动化机器学习 AutoML 框架和深度神经网络 的兴趣引起了对超参数优化 HPO 的重新研究 在本章中 我们概述了 HPO 最主要的方法 我们首先讨论基
  • LinkedList 对比 ArrayList 的区别

    LinkedList 底层是双向链表 基于双向链表 无需连续内存 随机访问慢 要沿着链表遍历 头尾插入删除性能高 占用内存多 ArrayList 底层是数组 5 基于数组 需要连续内存 6 随机访问快 指根据下标访问 7 尾部插入 删除性能