Java面试题总结-ArrayList和LinkedList的区别

news2024/12/23 13:02:23

ArrayList和LinkedList都实现了List接口,并且两者都不是线程安全的。他们有以下的区别:

(1)首先,最最本质的区别是:ArrayList内部使用的是动态数组来存储元素,而LinkedList内部使用的是双向链表来存储元素。 

(2)ArrayList是基于索引的数据接口,他的底层是数组。他可以进行O(1)时间复杂度对元素进行随机访问。

LinkedList是以元素列表的形式存储他的数据,每一个元素都和它的前一个和后一个元素链接在一起,在这种情况下,查找某个元素的时间复杂度是O(n)。

(3)LinkedList比ArrayList更占内存,因为LinkedList的节点除了存储数据,还存储了两个引用,一个指向前一个元素,一个指向后一个元素。

 (4)  对于删除和插入操作,LinkedList优于ArrayList,因为当元素被添加到LinkList任意位置的时候,不需要像ArrayList那样去更新索引

(5)LinkedList不仅实现了list接口,还实现了Deque接口,是基于链表的栈或者队列,与之对应的是ArrayDeque基于数组的栈或者队列

拓展:

ArrayList的扩容机制的浅分析:

 

通过分析源码,我们可以看到在ArrayList有一个无参的构造方法为elementData赋值了一个默认的空数组 DEFAULTCAPACITY_EMPTY_ELEMENTDATA。也就是说,使用了无参构造函数初始化ArrayList后,它的数组容量为0。

当后面调用add()进行添加操作时,将会给数组分配默认的初始容量为10

 

 

 

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

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

相关文章

PS图层+移动工具(3)对齐方式 对齐参照调整

此文为续文 请先查看 PS图层移动工具(2)复制删除快捷键 图层分组 前景色填充 后再查看本文 我们先来多选几个图层 然后上方属性栏 就激活了对应的操作 我们先来一波 左对齐 然后 就左对齐了 值得一提的是 这个左对齐 不是在屏幕的最左侧对齐 而是针对 所有你当前选择的图片…

华为机试 - 查找二叉树节点

题目描述 已知树形结构的所有节点信息,现要求根据输入坐标(x,y)找到该节点保存的内容值,其中x表示节点所在的层数,根节点位于第0层,根节点的子节点位于第1层,依次类推;y表示节点在该层内的相对偏移,从左至右,第一个节点偏移0,第二个节点偏移1,依次类推; 举例:上…

mysql索引失效

一、索引失效 1.当or左右查询字段只有一个是索引,该索引失效,只有当or左右查询字段均为索引时,才会生效 2.使用order by对数据库进行查询时,导致索引失效 ,order by走全表扫描比回表的时间更少 3.主键和唯一索引在同…

算法刷题入门数据结构|二分查找

一.二分查找基础 1、二分查找介绍 二分查找(Binary search)也称折半查找,是一种效率较高的查找方法,时间复杂度。当对查数题目有时间复杂度要求是,首先就要考虑到二分查找。二分查找的思想很简单,属于分治策略的变种情况。但是&am…

贷后催收评分模型中的数据清洗与数据治理细节介绍

数据清洗是一个非常修炼身心的过程,途中你除了需要把所有的数据整业务合到一张宽表里。而这种宽表中所有的字段,是你理解完业务后,细心整理出来的所有适合建模的数据。 今天我们给大家介绍一下,在风控贷后评分模型中,…

C规范编辑笔记(七)

往期文章: C规范编辑笔记(一) C规范编辑笔记(二) C规范编辑笔记(三) C规范编辑笔记(四) C规范编辑笔记(五) C规范编辑笔记(六) 正文: 大家好,今天来分享一下C语言规范编辑笔记的第七篇,分享这个是希望自己后面忘记了可以去复习…

ADI Blackfin DSP处理器-BF533的开发详解26:扩展IO输入的详细讲解(含源代码)

硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 硬件设计原理图 功能介绍 ADSP-EDU-BF53x 开发板上扩展接口的 PORT2 和 PORT3 中引出了 6 个扩展 IO 接口输入接口,这些连接到了CPLD…

C. Rooks Defenders Codeforces Round #791 (Div. 2)(树状数组!)

传送门 题意:给你一个的棋盘,然后给你一个t(t只能为1,2,3),对于不同的t产生不同的影响: t1时,给你一个点的坐标x,y,在这个点上生成一辆坦克(保证…

模拟实战从外网打点渗透到内网域控的笔记

信息收集 本次项目是一个是模拟渗透测试 电信诈骗网站,境外人员依赖该网站通过优惠卷诱导受害者进行消费, 诈骗受害人金钱。 前台地址 项目拓扑图 http://ip/user.php?moddo&actlogin&fromtohttp%3A%2F%2F43.143.193.216%2F 后台地址 http…

rabbitmq基础2——rabbitmq二进制安装和docker安装、基础命令

文章目录一、RabbitMQ安装1.1 二进制安装1.2 rabbitmqctl工具1.3 docker安装二、rabbitmq基础命令2.1 多租户与权限类2.1.1 创建虚拟主机2.1.2 查看虚拟主机信息2.1.3 删除虚拟主机2.1.4 给用户授权2.1.5 清除用户权限2.1.6 查看权限2.2 用户管理类2.2.1 创建用户2.2.2 查看用户…

爱心源码动图-Html网页运行

程序示例精选 爱心源码动图-Html网页运行 如需安装运行环境或远程调试,见文章底部微信名片! 前言 Html写的追女生神器-爱心动图,代码整洁,规则,易读,对学习与使用Html有较好的帮助。 文章目录 一、所需工具…

Redis高可用之主从复制、哨兵、cluster集群

Redis高可用之主从复制、哨兵、cluster集群Redis 高可用什么是高可用Redis的高可用技术Redis主从复制主从复制的作用主从复制流程搭建Redis主从复制所有节点安装Redis修改master节点的配置文件修改slave节点的配置文件验证主从效果Redis哨兵模式哨兵模式的作用哨兵结构故障转移…

Redis集群模式

目录 前言 一、集群的作用 二、集群模式的数据分片 三、集群模式的主从复制模型 四、Redis集群模式 Redis集群部署 开启群集功能 修改所有集群服务的配置文件端口,使其不一致 启动集群 集群测试 前言 1、集群,即 Redis Cluster, …

模型效果差?我建议你掌握这些机器学习模型的超参数优化方法

模型优化是机器学习算法实现中最困难的挑战之一。机器学习和深度学习理论的所有分支都致力于模型的优化。 机器学习中的超参数优化旨在寻找使得机器学习算法在验证数据集上表现性能最佳的超参数。超参数与一般模型参数不同,超参数是在训练前提前设置的。举例来说&a…

CKA考试Tips

前言 今年黑五的双证套餐的折扣比双11时还便宜个200多,不到2000,应该是史低吧,反正比前年低。即使考试前看了各种避坑技巧,虽然通过了但是结果还是因为各种问题导致时间不够没做完扣分,于是下面总结一下参加CKA/CKS考试时候的技巧。 报名及考…

[基因遗传算法]进阶之四:实践VRPTW

参考资料: 《旅行商问题(TSP)、车辆路径问题(VRP,MDVRP,VRPTW)模型介绍》 本文对《基于GA算法解决VRPTW》的分析和思考.具体的代码可以参考 《Python实现(MD)VRPTW常见求解算法——遗传算法(GA)》 . 文章目录壹、VRPTW一. 定义类二、数据读取三. 构造初…

JVM调优手段

JDK提供命令工具 jstat 是用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT 编译等运行数据,在没有 GUI图形界面,只提供了纯文本控制台环境的服务器上,它将是运行期定位虚拟…

博球一看,CSDN与你共观世界杯

2022卡塔尔世界杯不知不觉已接近尾声,不仅让人感叹,乌拉圭,巴西,葡萄牙都已淘汰,四强诞生分别是阿根廷,法国,摩洛哥,克罗地亚,非常期待梅西和魔笛的对决,也希…

电子学会2020年12月青少年软件编程(图形化)等级考试试卷(三级)答案解析

目录 一、单选题(共25题,每题2分,共50分) 二、判断题(共10题,每题2分,共20分) 三、编程题【该题由测评师线下评分】(共3题,共30分) 青少年软件…

【云计算与大数据技术】虚拟化简介及虚拟化的分类讲解(图文解释 超详细)

一、虚拟化简介 1:什么是虚拟化 虚拟化是指计算机元件在虚拟的基础上而不是在真实的、独立的物理硬件基础上运行。这种以优化资源、简化软件的重新配置过程为目的的解决方案就是虚拟化技术 虚拟化架构就是在一个物理硬件机器上同时运行多个不同应用的独立的虚拟系…