[Java] 阿里一面~说一下ArrayList 与 LinkedList 区别

文章目录

      • 是否保证线程安全
      • 底层数据结构
      • 插入和删除是否受元素位置的影响
      • 是否支持快速随机访问
      • 内存空间占用:

是否保证线程安全

ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全;

底层数据结构

● ArrayList 底层使用的是 Object 数组;
● LinkedList 底层使用的是 双向链表 数据结构(JDK1.6 之前为循环链表,JDK1.7 取消了循环。注意双向链表和双向循环链表的区别,下面有介绍到!)

双向链表: 包含两个指针,一个 prev 指向前一个节点,一个 next 指向后一个节点。
在这里插入图片描述

双向循环链表: 最后一个节点的 next 指向 head,而 head 的 prev 指向最后一个节点,构成一个环。
在这里插入图片描述

插入和删除是否受元素位置的影响

● ArrayList 采用数组存储,所以插入和删除元素的时间复杂度受元素位置的影响。
● LinkedList 采用链表存储,所以,如果是在头尾插入或者删除元素不受元素位置的影响,时间复杂度 O(1),如果是要在指定位置 i 插入和删除元素的话, 时间复杂度为 O(n) ,因为需要先移动到指定位置再插入。

是否支持快速随机访问

● LinkedList 不支持高效的随机元素访问,而 ArrayList 支持。

快速随机访问就是通过元素的序号快速获取元素对象(对应于get(int index)方法)。

内存空间占用:

● ArrayList 的空间浪费主要体现在在 list 列表的结尾会预留一定的容量空间;
● 而 LinkedList 的空间花费则体现在它的每一个元素都需要消耗比 ArrayList 更多的空间(因为要存放直接后继和直接前驱以及数据)。

注意: 文章内容属于站在巨人的肩膀进行输出~

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

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

相关文章

Transformers实战——文本相似度

文章目录 一、改写文本分类1.导入相关包2.加载数据集3.划分数据集4.数据集预处理5.创建模型6.创建评估函数7.创建 TrainingArguments8.创建 Trainer9.模型训练10.模型评估11.模型预测 二、交互/单塔模式1.导入相关包2.加载数据集3.划分数据集4.数据集预处理5.创建模型&#xff…

OAuth(开放授权)介绍

OAuth(开放授权)是一个开放标准,允许用户授权第三方应用访问他们存储在另一服务提供商上的信息,而无需将用户名和密码直接暴露给第三方应用。这个过程提供了一种安全的授权方式,常用于允许用户让第三方应用访问例如邮箱…

Anaconda超简单安装教程,超简洁!!!(Windows环境下,亲测有效)

写下这篇文章的动机,是今天在装Anaconda的时候,本来想搜点教程按照教程一步一步安装的,但没想到,所谓“保姆级”教程呀,“最详细”之类的,好复杂。然后一些本应该详细说的反而一笔带过了。所以今天我想把我…

个人成长|普通人要想摆脱贫穷,一定要注意这3点

哈喽呀,你好,我是雷工。 身为普通人,没有背景,没有资源,也没有人脉,在什么都没有的情况下如何才能摆脱贫穷,让生活过得更好。 要想自我蜕变,摆脱贫穷,就必须注意以下3点。…

【人工智能Ⅰ】实验6:回归预测实验

实验6 回归预测实验 一、实验目的 1:了解机器学习中数据集的常用划分方法以及划分比例,并学习数据集划分后训练集、验证集及测试集的作用。 2:了解降维方法和回归模型的应用。 二、实验要求 数据集(LUCAS.SOIL_corr-实验6数据…

​[Oracle]编写程序,键盘输入n,计算1+前n项之和。测试案例:输入:10 输出:22.47​

编写程序,键盘输入n,计算1前n项之和。 测试案例: 输入:10 输出:22.47 代码如下: set serveroutput on declare v_sum number:0;v_n number;beginv_n:&n;for i in 1..v_n loopv_sum:v_sumsqrt(i); end loop; d…

21条良心建议!申请香港优才计划注意事项须知!

21条良心建议!申请香港优才计划注意事项须知! 给即将申请香港优才计划的你21条良心建议,香港优才计划大致流程:先补充好信息差→申请→递交→等待档案号! 一、不是获批后孩子就能低分考985/211 这就是大部分中介画的教…

springmvc实验(三)——请求映射

【知识要点】 方法映射概念 所谓的方法映射就是将前端发送的请求地址和后端提供的服务方法进行关联。在springMVC框架中主要使用Controller和RequestMapping两个注解符,实现请求和方法精准匹配。注解符Controller Spring中包含了一个Controller接口,但是…

虚拟机安装centos7系统后网络配置

一.桥接网络和nat网络的区别1,桥接模式(如果外部访问虚拟机,最好选这个) 通过使用物理机网卡 具有单独ip,但是需要手动配置。 在bridged模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它…

跨境在线客服系统:打破国界的沟通壁垒

跨境在线客服系统在如今全球化的时代中扮演着重要的角色。随着电子商务的兴起,越来越多的企业将目光投向了国际市场。然而,跨境交流带来了语言、文化、时区等各种难题,给客服工作带来了巨大的挑战,而跨境在线客服系统成为了解决这…

【2023.11.29练习】希尔排序的实现

题目描述&#xff1a; 本题要求实现一趟希尔排序函数&#xff0c;待排序列的长度1<n<1000。 函数接口定义&#xff1a; void ShellInsert(SqList L,int dk); 其中L是待排序表&#xff0c;使排序后的数据从小到大排列。 ###类型定义&#xff1a; typedef int KeyTy…

力扣题:字符的统计-11.30

力扣题-11.30 [力扣刷题攻略] Re&#xff1a;从零开始的力扣刷题生活 力扣题1&#xff1a;49. 字母异位词分组 解题思想&#xff1a;将单词进行排序之后通过哈希表进行返回 class Solution(object):def groupAnagrams(self, strs):""":type strs: List[str]:…

Node.js+Express+Nodemon+Socket.IO构建Web实时通信

陈拓 2023/11/23-2023/11/27 1. 简介 Websocket WebSocket是一种在单个TCP连接上提供全双工通讯的协议。特别适合需要持续数据交换的服务&#xff0c;例如在线游戏、实时交易系统等。 Websocket与Ajax之间的区别 Ajax代表异步JavaScript和XML。它被用作一组Web开发技术&…

如何在Docker环境下安装Firefox浏览器并结合内网穿透工具实现公网访问

文章目录 1. 部署Firefox2. 本地访问Firefox3. Linux安装Cpolar4. 配置Firefox公网地址5. 远程访问Firefox6. 固定Firefox公网地址7. 固定地址访问Firefox Firefox是一款免费开源的网页浏览器&#xff0c;由Mozilla基金会开发和维护。它是第一个成功挑战微软Internet Explorer浏…

SpringBoot第56讲:SpringBoot集成文件 - 集成EasyExcel之Excel导入导出

集成EasyExcel之Excel导入导出 EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具。它能让你在不用考虑性能、内存的等因素的情况下,快速完成Excel的读、写等功能。它是基于POI来封装实现的,主要解决其易用性,封装性和性能问题。本文是SpringBoot第…

从薛定谔的猫——量子理论基础

在介绍量子理论基础之前&#xff0c;先介绍一下薛定谔的猫的故事&#xff0c;这个故事可能大多数朋友并不陌生&#xff0c;下面首先回顾一下&#xff1a; 薛定谔的猫是一个在量子力学中用来说明量子叠加态和测量结果的思维实验。这个思维实验最早由物理学家Erwin Schrdinger在1…

Android 编译系统AIDL模块couldn‘t find import for class错误

在 .aidl 文件中编写 AIDL 并将其添加到LOCAL_SRC_FILES您的 Android.mk 中。如果您的构建目标是二进制文件&#xff08;例如&#xff0c;您包含$(BUILD_SHARED_LIBRARY)&#xff09;&#xff0c;则生成的代码将是 C&#xff0c;而不是 Java。 AIDL 定义应与实现托管在同一存储…

深眸科技|AI+机器视觉加速进入工业制造,成为提升智能制造必选项

随着人工智能技术的飞速发展&#xff0c;AI视觉与机器视觉技术正在加速进入工业制造中。机器视觉技术赋予机器新活力与新智慧&#xff0c;不仅让机器实现精密工作的完成&#xff0c;还让其能够代替部分脑力活动&#xff0c;具有更高的智慧与能力。 深眸科技CEO周礼表示&#x…

基数排序及利用数组简化解题

红豆不堪看&#xff0c;满眼相思泪 本文主要是帮助大家熟练掌握利用数组进行有关判断的题目&#xff0c;看完本文后在之后的刷题中都可以利用这种思想&#xff0c;当然举例中的题目利用该种方法可能不是最优解&#xff0c;但绝对是你看到题目不用思考太多就可以做出来的方法&am…

容器有挂载目录的时候,容器反向生成为镜像,挂载的内容不会保留。只有实打实拷贝进容器的反向生成镜像才会保留。

无容器目录挂载 1、也就是说宿主机未与容器进行路径映射&#xff0c;故我们可以直接使用指令: docker commit 容器名称/容器ID 像名:标签号&#xff0c;把容器保存为镜像; (其中镜像名和标签号是我们随机取的&#xff0c;新镜像名以及我们的标签号!) 2、我们在不能判断容器与宿…