16-ArrayList和LinkedList的区别

1.1、作用

  • ArrayList和LinkedList都是实现了List接口的容器类,用于存储一系列的对象引用。它们可以对元素的增删改查进行操作
  • 对于ArrayList,它在集合的末尾删除或添加元素所用的时间是一致的,但是 在列表中间的部分添加或删除时所用的时间就会大大增加;但是它在根据索引查找元素的时候速度很快
  • 对于LinkedList, 它在插入、删除集合中任何位置的元素所花费的时间都是一样的,但是它查询一个元素的时候却比较慢

1.2、区别

  • ①、ArrayList是实现了 基于动态数组的数据结构,LinkedList是 基于链表结构
  • ②、对于 随机访问的get和set方法,ArrayList要 优于LinkedList,因为LinkedList要移动指针
  • ③、对于 新增和删除操作add和remove,LinkedList比较占优势,因为ArrayList要移动数据

1.3、缺点

  • ①、对于ArrayList和LinkedList而言,在 列表末尾增加一个元素所花的开销都是固定的。ArrayList主要是在内部数组中增加一项,指向所添加的元素,偶尔可能会导致对数组重新进行分配,而对LinkedList而言,这个开销是统一的,分配一个内存Entry对象
  • ②、在ArrayList集合中 添加或者删除一个元素时,当前索引后面的所有元素都会被移动,而LinkedList集合中 添加或者删除一个元素的开销是固定的
  • ③、LikedList集合不支持 高效的随机访问(RandomAccess),因为可能产生二次项的行为
  • ④、ArrayList的空间浪费主要体现在 List列表的结尾预留一定的容量空间,而LinkedList的空间花费则体现在 *它的每一个元素都需要消耗相当的空间

posted @
2022-08-09 21:43 OnlyOnYourself-Lzw

阅读(
16

) 评论(
) 编辑

Original: https://www.cnblogs.com/OnlyOnYourself-lzw/p/16567722.html
Author: OnlyOnYourself-Lzw
Title: 16-ArrayList和LinkedList的区别

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/581577/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 2018部分

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    074
  • postgresql强制删除数据库

    sql;gutter:true; SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity W…

    Linux 2023年6月8日
    076
  • 幸运的袋子 附加动图演示!

    幸运的袋子_牛客题霸_牛客网 (nowcoder.com) 厄运的袋子 用到了深度遍历 递归回溯法 这里假设一个例子: 1 1 1 2 2 3 4 5 7 8 因为要确认是否辛运,…

    Linux 2023年6月13日
    083
  • Xbox无法进入开发者模式

    从2020.09.01起,Xbox的dev mode app估计是证书过期或者其他系统配置问题,导致大量开发者无法进入开发者模式,具体如下图所示。 针对上述问题,可以通过微软预先设…

    Linux 2023年6月13日
    0235
  • 计算机硬件的读写速度差异

    现代计算机系统 存储器 寄存器 CPU时钟周期 高速缓存 主存 固态硬盘 机械硬盘 压榨CPU性能带来的问题 有序性问题 可见性问题 原子性问题 作者:小牛呼噜噜 | https:…

    Linux 2023年6月6日
    0119
  • OSPF之Default-router-advertise 解析

    1、关于default-route-advertise命令 Ospf是可以通过import-route命令引入外部路由的,但很少有人会注意到,在默认情况下,ospf是不会引入来自外…

    Linux 2023年6月14日
    087
  • DDR4 SDRAM -时序参数小册子

    如前所述,大神的原文链接如下:https://www.systemverilog.io/ddr4-timing-parameters-cheatsheet 参数 功能 ACTIVA…

    Linux 2023年6月7日
    093
  • 每天一个 HTTP 状态码 203

    203 ‘Non-Authoritative Informative’ 直译过来是「非权威信息」的意思… 203 Non-Authoritati…

    Linux 2023年6月7日
    090
  • Docker-dockerfile

    Docker-通过Dockerfile创建镜像 1.Dockerfile简介 简而言之,Dockerfile 是一个描述如何创建 Docker 镜像所需步骤的文本文件。 一个Doc…

    Linux 2023年6月13日
    085
  • Flink 如何分流数据

    场景 分流方式 如何分流 使用Filter分流 使用Split分流 使用Side Output分流 场景 获取流数据的时候,通常需要根据所需把流拆分出其他多个流,根据不同的流再去作…

    Linux 2023年6月7日
    0122
  • USB转RS232串口应用

    RS232串口是用于数据串行通信传输的标准之一,该标准定义了信号的电气特性和时序、信号的含义以及连接器的物理尺寸和引脚排列。RS232协议规范定义的是DB25接口,实际上大多数RS…

    Linux 2023年6月7日
    098
  • JQ 实现对比两个文本的差异并高亮显示差异部分

    利用jq对比两段文本的差异,差异的内容用不同颜色表示出来。 在线参考demo:http://incaseofstairs.com/jsdiff/ 项目地址:https://gith…

    Linux 2023年6月7日
    0102
  • 使用并发 ssh 连接来提升捞日志脚本执行效率

    问题背景 公司有简单粗略的日志服务,部署在多台机器实例上,采集的日志记录在每台机器的本地硬盘上,写一小时后日志文件自动切换,硬盘空间自动回滚。大约可以保存两三天的历史数据。为什么会…

    Linux 2023年5月27日
    067
  • 关于博客园设置awescnb皮肤教程

    第一步:申请博客园 申请博客园,然后再申请js权限 第二步:设置博客园 页面定制勾选禁止模版使用css 页面定制css代码 .profile-menu{ display: none…

    Linux 2023年6月11日
    077
  • Shell中的特殊符号(special characters)和含义

    之前写过两篇关于Bash语法的blog,分别是: 个人感觉,想要通畅地读懂bash脚本,还差一个部分,那就是符号。 个人网上的讲bash符号的文章有点乱,要么有错,要么不全,要么太…

    Linux 2023年5月28日
    081
  • pymysql模块的使用

    pymysql模块的使用 import pymysql 1、连接数据库 conn = pymysql.connect( user=’root’, # The first four …

    Linux 2023年6月14日
    086
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球