面试官:说一下ArrayList和LinkedList有什么区别 我:。。。。面试: 对了但是没全对

这是一个面试向的文章,主要描述我在面试某公司的一面的一个过程,印象深刻,故而写下这篇文章

面试官:说一下ArrayList和LinkedList有什么区别

我(心里):简单,学过数据结构的都知道有什么区别

我(滔滔不绝):

ArrayList和LinkedList都是Java语言中常用的集合类,它们的区别在于底层数据结构不同,因此它们在特定场景下的表现也会有所不同:

  1. 底层数据结构:ArrayList底层是数组,LinkedList底层是链表。因此,当需要随机访问集合中的元素时,ArrayList的性能更好;而当需要频繁进行插入和删除操作时,LinkedList的性能更好。

  2. 插入和删除操作:当需要插入或者删除某个元素时,ArrayList需要将该元素之后的所有元素向后移动一个位置,而LinkedList只需要修改前后元素的指针即可。

  3. 内存占用:ArrayList在初始化时需要指定大小,如果不够用需要进行扩容操作,而LinkedList不需要进行扩容操作。另外,由于LinkedList每个节点需要存储指向前后节点的指针,因此占用的内存更多。

面试官:看来你挺懂的吗?你刚刚说到,ArrayList遍历快,删除和增加慢,我想在这里问一下,为什么删除和添加会慢?

我(心里):小case

我(自信的回答):因为当尝试在数组的中间添加元素的时候,数组要将这个位置后面的所有的索引都要进行改变,过程如下,假设定义数组arr长度为10,当我向第5个位置添加元素的时候,就要执行arr[11]=arr[10]....,以此类推,最后arr[4]=value,这中间,移动了很多元素,删除也是同理。

面试官:如果是最后一个元素呢?

我:最后一个元素的话,就不会很话费效率了,因为不需要移动元素。

面试官:好,那你在什么场景下会对ArrayList进行按索引插入和删除吗?

我:emmm,一时间想不出来

面试官:你的理论方面还是可以的,但是很多场景要结合实际工作中来看,那就下一个问题吧。

。。。。。。。。。。。。。。。。。。。

 

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

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

相关文章

【古月居《ros入门21讲》学习笔记】10_话题消息的定义与使用

目录 说明: 1. 话题模型 2. 实现过程(C) 自定义话题消息 Person.msg文件内容 Person.msg文件内容说明 编译配置 在package.xml文件中添加功能包依赖 在CMakeLists.txt中添加编译选项 编译生成语言相关文件 创建发布者代码&#xff…

关于最近Facebook的未经用户同意收集使用个人信息,

最近收到深圳市通信管理局的违法违规APP处置通知大概如下: 并且详细列举了 facebook sdk 在未经用户允许前调用的 TelephonyManager.getNetworkOperatorName(); 方法,获取运营商名称. 解决方法, 首先 在用户没有点击允许隐私条款前 不要调用任何Facebook sdk 方法,比如: Fac…

智慧科研助力科研数据的分析处理

如今,科研领域的发展日新月异,数据量也越来越大。这时,智慧科研可视化技术不仅为科研人员提供了快速高效的数据分析手段,而且为科研工作的推进提供了新的思路和方法。通过可视化手段,我们可以将各种数据、信息、知识以…

北京JAVA(HR)现状——自我感觉哈(娱乐版本)

主要针对 外包纯纯小公司(就几个人,没大公司投资的那种,一般在20——99人) 自我感觉自我感觉本人的主观意愿哈。 1.有统招本科的尽量找统招本科,没有的统招本科,找专科1年的 2.我问你:统招三…

助力企业实现更简单的数据库管理,ATOMDB 与 TDengine 完成兼容性互认

为加速数字化转型进程,当下越来越多的企业开始进行新一轮数据架构改造升级。在此过程中,全平台数据库管理客户端提供了一个集中管理和操作数据库的工具,提高了数据库管理的效率和便利性,减少了人工操作的复杂性和错误率&#xff0…

带大家做一个,易上手的家常土豆片

还是先从冰箱里那一块猪瘦肉 搞一点蒜和生姜 切成小块 装进一个碗里 这里一点就够了 一条绿皮辣椒 切片 三个左右干辣椒 随便切两刀 让它小一点就好了 一起装一个碗 一大一小两个土豆切片 猪肉切片 起锅烧油 然后 下肉翻炒 等肉变颜色捞出来 然后放入土豆 和小半碗水 让…

EBNF

EBNF 一、简介 句法元语言(Syntactic metalanguages)是计算机科学的重要工具是大家熟知的概念,因为使用了许略有不同的符号,导致句法元语言未能被广泛的使用。 EBNF(Extended BNF)引进一些句法的正式定义,从而广泛使用在编程语言的定义中。…

【漏洞复现】万户协同办公平台ezoffice SendFileCheckTemplateEdit.jsp接口存在SQL注入漏洞 附POC

漏洞描述 万户ezOFFICE协同管理平台是一个综合信息基础应用平台。 万户协同办公平台ezoffice SendFileCheckTemplateEdit.jsp接口存在SQL注入漏洞。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害…

HTML-标签之文字排版、图片、链接、音视频

1、标签语法 HTML超文本标记语言——HyperText Markup Language 超文本是链接标记也叫标签,带尖括号的文本 2、HTML基本骨架 HTML基本骨架是网页模板 html:整个网页head:网页头部,存放给浏览器看的代码,例如CSSbody…

抖音本地生活服务商申请入口门槛过高,该怎么办?

近年来,短视频平台的举起让直播带货和本地生活服务行业逐渐兴起,并且以其便捷、高效的特点受到了广大用户的欢迎。很多创业者也加入了本地生活服务商的行列中,但有消息传出,抖音本地生活服务商申请入口可能会关闭,由于…

从0到字节跳动30W年薪,我在测试行业“混”的第5个年头····

一些碎碎念 什么都做了,和什么都没做其实是一样的,走出“瞎忙活”的安乐窝,才是避开弯路的最佳路径。希望我的经历能帮助到有需要的朋友。 在测试行业已经混了5个年头了,以前经常听到开发对我说,天天的点点点有意思没…

Linux系统部署Tale个人博客并发布到公网访问

文章目录 前言1. Tale网站搭建1.1 检查本地环境1.2 部署Tale个人博客系统1.3 启动Tale服务1.4 访问博客地址 2. Linux安装Cpolar内网穿透3. 创建Tale博客公网地址4. 使用公网地址访问Tale 前言 今天给大家带来一款基于 Java 语言的轻量级博客开源项目——Tale,Tale…

博捷芯:半导体芯片切割,一道精细工艺的科技之门

在半导体制造的过程中,芯片切割是一道重要的环节,它不仅决定了芯片的尺寸和形状,还直接影响到芯片的性能和使用效果。随着科技的不断进步,芯片切割技术也在不断发展,成为半导体制造领域中一道精细工艺的科技之门。 芯片…

【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析

文章目录 行为型模式1、模板方法模式(1)概述(2)结构(3)案例实现(4)优缺点(5)适用场景(6)JDK源码解析(7)模板方…

制造业如何做生产设备管理、分析生产数据?

本文将为大家讲解:1、设备管理的现状与问题;2、设备管理系统功能;3、制造业企业如何做生产设备管理、分析生产数据?4、制造业设备管理的价值。 想要管理好设备,设备档案管理、巡检、报修、保养、分析预警等问题都是必须…

封装进度条onUploadProgress+axios取消请求的上传组件

目录 定时模拟进度条 方法 A.axios B.xhr 取消请求 完整代码 A.自定义上传组件 B.二次封装组件 情况 增加cancelToken不生效,刷新页面 进度条太快->设置浏览器网速 定时模拟进度条 startUpload() {if (!this.file) return;const totalSize this.fil…

【PyTorch】(二)加载数据集

文章目录 1. 通用方法 1. 通用方法 创建数据集 主要是将数据集读入内存,并用Dataset类封装。直接继承Dataset类的自定义数据集必须要重写__getitem__方法,用于根据索引获得相应样本数据。必要时还可以重写__len__方法,用于返回数据集的大小。…

NV040C语音芯片:让自助ATM机使用更加安全快捷

近年来,移动支付方式的兴起、银行加强线上化服务、数字人民币项目推进等因素的影响,人们使用ATM机的频率呈现小幅度的下降趋势。然而,自助ATM机并未从我们的视野中消失,它们仍然在金融领域发挥着重要的作用。未来,ATM机…

Wish防关联是什么?Wish要怎样避免违规封店?

四大跨境电商平台之一wish,做跨境电商的很多人可能都听过wish。随着wish不断完善平台制度,对于多账号运营的卖家要求越来越严厉,wish和亚马逊、eBay等其它跨境电商平台一样,不支持一个卖家开设多个账号多家店铺。 但是对于各位卖家…

【力扣:526】优美的排列

状态压缩动态规划 原理如下: 遍历位图可以得到所有组合序列,将这些序列的每一位看作一个数,取序列中1总量的值作为每轮遍历的位,此时对每个这样的位都能和所有数进行匹配,因为一开始就取的是全排列,并且我们…