java八股文面试[数据结构]——ArrayList和LinkedList区别

news2025/1/11 14:02:20

 

ArrayList和LinkedList的异同
二者的线程都不安全,相对线程安全的Vector,执行效率高。此外,ArrayList时实现了基于动态数组的数据结构,LinkedList基于链表的数据结构,对于随机访问get和set,ArrayList觉得优于LinkedList比较占优势,因为LinledList要移动指针。对于新增和删除操作add(特指插入)和remove,LinkedList比较占优势,因为ArrayList要移动数据。


ArrayList和Vector的区别
Vector和ArrayList几乎是完全相同的,唯一的区别在于Vector是同步类(synchronized),属于强同步类,因为开销就比ArrayList要大,访问要慢。正常情况下,大多数的java程序员使用ArrayList而不是Vector,因为同步完全可以由程序员自己来控制。Vector每次扩容请求其大小的2倍空间,而ArrayList是1.5倍
 

ArrayList的源码分析
在这里插入图片描述
结论:建议开发中使用带参的构造器:ArrayList list=new ArrayList(int capacity)
Jdk8中ArrayList的变化在这里插入图片描述


LinkedList的源码分析
在这里插入图片描述

数据结构实现: ArrayList 是动态数组的数据结构实现,而 LinkedList 是双向链表的数据结构实
现。
随机访问效率: ArrayList 比 LinkedList 在随机访问的时候效率要高,因为 LinkedList 是线性的数
据存储方式,所以需要移动指针从前往后依次查找。
增加和删除效率:在非首尾的增加和删除操作, LinkedList 要比 ArrayList 效率要高,因为
ArrayList 增删操作要影响数组内的其他数据的下标。
内存空间占用: LinkedList 比 ArrayList 更占内存,因为 LinkedList 的节点除了存储数据,还存储
了两个引用,一个指向前一个元素,一个指向后一个元素。
线程安全: ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全;
综合来说,在需要频繁读取集合中的元素时,更推荐使用 ArrayList ,而在插入和删除操作较多
时,更推荐使用 LinkedList 。
LinkedList 的双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向
直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结
点和后继结点

 

知识来源:

【基础】ArrayList和LinkedList区别_哔哩哔哩_bilibili

【2023年面试】ArrayList和LinkedList有什么区别_哔哩哔哩_bilibili

Java中的集合框架_java集合框架_汝甚骚吾不及的博客-CSDN博客

JAVA集合面试题52道_秋枫要学习的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/917867.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

异地机房容灾备份方案,异地容灾备份方式有哪些

任何时候,我们都不能避免自然灾害、硬件问题、黑客攻击等事故。这些事情可能会导致数据中心的偏瘫,甚至影响整个业务的正常使用。因此, 机房容灾备份计划已成为确保业务连续性的关键对策。 一、异地机房容灾备份方案是什么? 国外…

Shell的一些基础

1.查看某个路径下的目录和文件列表 ls -lR 路径 2.统计某个路径下的文件数量: ls -lR lntest/ | grep “^-” | wc -l 3.找出进程里占用CPU或者内存最高的进程 首先 ps aux 列出来的,cpu是第三列,内存是第四列,所以找出占用cpu最…

word里的文字限制编辑,不知道密码怎么办?

Word文档可以设置加密来保护文件禁止修改,但是在word文档中设置限制编辑功能时对它的作用是否有详细的了解呢?今天为大家介绍word限制编辑功能的作用以及忘记了限制编辑密码该如何解决。 设置限制大家应该都清楚,就是点击工具栏中的审阅 – …

视频集中存储/直播点播平台EasyDSS内核无法启动是什么原因?

视频推拉流EasyDSS视频直播点播平台,集视频直播、点播、转码、管理、录像、检索、时移回看等功能于一体,可提供音视频采集、视频推拉流、播放H.265编码视频、存储、分发等视频能力服务。 有用户反馈,下载了视频直播点播平台EasyDSS最新版本&a…

金属氧化物变阻器美国市场估算为13亿美元,中国则将以年复合成长率13.5%增长

金属氧化物变阻器是一种电子元件,它的作用是限制电流过大时对电路的损害。MOV的主要构成材料是金属氧化物,例如氧化锌(ZnO)。当电路中的电压超过预定值时,MOV会迅速变得导电,从而限制电流的继续增加。这个特…

问题描述:在Windows下没有预装ImageMagick工具

问题描述:在Windows下没有预装ImageMagick工具 # WInR输入cmd回车进入命令行,执行以下命令查看版本信息 magick --version没有预装ImageMagick工具 解决方案:下载安装ImageMagick 官网下载:ImageMagick-7.1.1-15-Q16-x64-dll.exe 下载之后,一路下一步…

系统架构设计师-计算机系统基础知识(1)

目录 一、计算机系统概述 1、冯诺依曼计算结构​编辑 二、存储系统 三、操作系统概述 1、特殊的操作系统 四、进程管理 1、进程与线程的概念 2、进程的同步与互斥 3、PV操作 4、死锁与银行家算法 一、计算机系统概述 1、冯诺依曼计算结构 二、存储系统 从上到下依次&#…

【C修炼计划】卷壹 · 初识C语言

文章目录 卷壹 初识C语言一 C语言的起源二 C语言的特性三 C语言的应用范围四 C语言程序结构五 C语言书写规范六 C语言编译器安装附 参考资料 卷壹 初识C语言 一 C语言的起源 C语言的前生是B语言(BCPL,一种早期的高级语言)。下图描…

快手正面临着严重的监管阻力,股价上涨潜力将遭受严重限制

来源:猛兽财经 作者:猛兽财经 积极的盈利预警 上月底,快手(01024)发布公告称,该公司预计2023年上半年的净收入将达到5.6亿元人民币。 考虑到快手报告的2023年第一季度归属于股东的净亏损为- 8.73亿元人民币…

顶尖测试学思维?跟Google大佬学顶级测试思维!

谷歌员工怎么写 python 代码? 谷歌内部的 python 代码规范 熟悉 python 一般都会努力遵循 pep8 规范,也会有一些公司制定内部的代码规范。大公司制定规范的目的不是说你一定要怎样去使用编程语言,而是让大家遵守同一套规则,节省…

选择适合企业的文件传输方式:SFTP与SCP的比较及应用场景分析

企业的发展和业务拓展必不可少地依赖于文件传输。为确保数据安全且传输高效,选择适宜的文件传输方式至关重要。在众多选择中,基于SSH协议的SFTP和SCP备受青睐。 以下将详细介绍SFTP和SCP,分析它们适用的企业文件传输场景。 一、SFTP与SCP的差…

Wireshark数据抓包分析之互联网协议(IP协议)

一、实验目的: 通过wireshark抓包分析IP协议的具体内容 二、预备知识: 1.IP地址存在的意义,就是为了弥补mac地址的不足,用于区分不同的网络 2.还有一些ip协议、ip数据包这些东西 三、网络拓扑 四、实验过程: part1&…

DeepMind UCL 推出新的推理模型和测试集

侦探大师可能会检查丢弃在烟灰缸中的香烟和翻领上的一缕头发,然后宣布他们已经解决了谋杀案。这些惊人的结论是通过推理得出的,推理是一种微妙而独特的人类技术,可以根据看似不同或遥远的物品和事件之间的联系形成预测。推理是当今神经网络研…

面对全球跨境市场挑战,2023下半年如何适应新赛道与全托管布局?

在2023年,跨境电商行业逐渐复苏并持续发展,伴随着一系列有利于跨境贸易的政策逐步推动。 与此同时,随着多个平台陆续推出“全托管模式”,竞争在跨境电商巨头之间进一步激化。那么,面对2023年下半年的全球跨境市场挑战…

【数据结构与算法】链表

文章目录 前言一:链表(LinkedList)1.1 链表分类1.2 介绍1.3 链表的概念及结构 二:单链表2.1 单链表结构示意图2.2 单链表的应用实例2.3 单链表的添加2.3.1 直接添加到链表的尾部(不考虑顺序)2.3.1.1 整体思路2.3.1.2 代码实现 2.3…

PDA手持终端联发科安卓主板方案定制_4G5G通讯模块PDA方案开发

PDA手持终端是一种便携式电子设备,具备计算、通讯、存储和数据处理等多种功能,广泛应用于商业、工业、医疗、物流和日常生活等领域。 手持终端pda作为一种快速手持数据处理设备,通常集成了与数据采集和传输密切相关的功能,如条码…

opencv 案例实战01-停车场车牌识别实战

需求分析: 车牌识别技术主要应用领域有停车场收费管理,交通流量控制指标测量,车辆定位,汽车防盗,高速公路超速自动化监管、闯红灯电子警察、公路收费站等等功能。对于维护交通安全和城市治安,防止交通堵塞…

探析低代码开发平台的核心能力

低代码开发平台正在成为当今软件开发领域的热门话题。它以其卓越的灵活性和高效性,被越来越多的企业所选择。作为一种创新性的解决方案,低代码开发平台大大降低了开发难度,极大地缩短了开发周期,并且可兼容多平台应用程序的快速迭…

软件测试技术分享丨遇到bug怎么分析?

为什么定位问题如此重要? 可以明确一个问题是不是真的“bug” 很多时候,我们找到了问题的原因,结果发现这根本不是bug。原因明确,误报就会降低 多个系统交互,可以明确指出是哪个系统的缺陷,防止“踢皮球…

TikTok Shop内容规则更新,禁止达人进行多平台联播

01.TikTok Shop禁止达人进行多平台联播 TikTok Shop更新了《TikTok Shop内容规则》,公告显示,TikTok Shop高度重视平台用户的安全,为保障用户体验并保护买家免受潜在的误导性广告的影响,在电商直播活动中,达人不得同时…