当前位置: 首页 > news >正文

[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 更多的空间(因为要存放直接后继和直接前驱以及数据)。

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

相关文章:

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

文章目录 是否保证线程安全底层数据结构插入和删除是否受元素位置的影响是否支持快速随机访问内存空间占用: 是否保证线程安全 ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全; 底层数据结构 ● ArrayList 底层使用的是 Obje…...

凸包问题的GRAHAM-SCAN解法 open3d c++ 代码

使用了Open3D库进行点云处理和可视化。下面是代码的大致解释: 引入必要的头文件和命名空间: 定义了三个函数: ComputeTriangleDirArea:计算带符号三角形的面积。Compute2Ddistance:计算两点之间的平面距离。GetConvexHullByGrahamScan:通过Graham Scan方法计算凸包点集。…...

从微软Cosmos DB浅谈一致性模型

最近回顾了微软的Cosmos DB的提供一致性级别,重新整理下一致性模型的相关内容。 0. Cosmos DB Cosmos DB(Azure Cosmos DB)是由微软推出的一个支持多模型、多 API 的全球分布式数据库服务。它旨在提供高度可扩展性、低延迟、强一致性和全球…...

spring-webmvc练习-日程管理-访问后端展示列表数据

1、util/request.js import axios from "axios";let request axios.create({baseURL: "http://localhost:8080",timeout: 50000 });export default request 2、api/schedule.js import request from "../util/request.js";export let getSchedu…...

【Linux系统编程】操作系统详解(什么是操作系统?为什么会存在操作系统?设计操作系统的目的是什么?)

目录 一、前言 二、 什么是操作系统 💦操作系统的引入 💦操作系统的概念理解 💦操作系统设计的目的与定位 💦总结 二、操作系统之上之下分别有什么 三、深度理解操作系统的“管理” 💦场景理解 💦操…...

肖sir __数据库练习__001

建表语句: create table student ( id int(4),age int(8),sex int(4),name varchar(20), class int(4), math int(4)) DEFAULT charsetutf8; INSERT into student VALUES(1,25,1,‘zhansan’,1833,90); INSERT into student VALUES(2,25,1,‘lisi’,1833,67); INSER…...

【数据结构初阶】树,二叉树

树,二叉树 1.树概念及结构1.1树的概念1.2 树的相关概念1.3 树的表示1.4 树在实际中的运用(表示文件系统的目录树结构) 2.二叉树概念及结构2.1概念2.2现实中的二叉树2.3 特殊的二叉树2.4 二叉树的性质2.5 二叉树的存储结构 1.树概念及结构 1.…...

HTML新手入门笔记整理:HTML常用标签总结表

HTML常用标签 标签 英文全称 语义 div division 区块(块元素) span span 区块(行内元素) p paragraph 段落 ol ordered list 有序列表 ul unordered list 无序列表 li list item 列表项 dl definition list 定义列表 dt definition term 定义术语 d…...

Linux7安装mysql数据库以及navicat远程连接mysql

1.下载地址:MySQL :: Download MySQL Community Server 2.创建mysql目录将压缩包上传到该目录 mkdir /opt/mysql cd /opt/mysql3.解压压缩包 gzip mysql-8.1.0-1.el7.x86_64.rpm-bundle.tar tar -zxvf mysql-8.1.0-1.el7.x86_64.rpm-bundle.tar.gz 4.前置检查 ch…...

FFmpeg命令分隔视频

有一个视频如a.mp4,此视频采用帧率为30生成,共有299帧,这里通过FFmpeg命令分隔成1秒一个个的小视频,即每个小视频帧数为30帧。 用到的FFmpeg参数如下所示: (1).-i:指定输入视频文件的名称; (2).-c:指…...

开源与闭源

我的观点: 开源与闭源软件都有各自的优势和劣势,没有绝对的对错之分。.. 一、开源和闭源的优劣势比较 开源的好处与劣处 优势: 创新与合作:开源软件能够吸引更多的开发者参与到项目中来,促进创新和合作。开放的源代码…...

详解Python对Excel处理

Excel是一种常见的电子表格文件格式,广泛用于数据记录和处理。Python提供了多个第三方库,可以方便地对Excel文件进行读写、数据操作和处理。本文将介绍如何使用Python对Excel文件进行处理,并提供相应的代码示例和详细说明。 一、安装第三方库…...

docker compose搭建渗透测试vulstudy靶场示例

前言 渗透测试(Penetration test)即网络安全工程师/安全测试工程师/渗透测试工程师通过模拟黑客,在合法授权范围内,通过信息搜集、漏洞挖掘、权限提升等行为,对目标对象进行安全测试(或攻击)&am…...

Python基础教程:强大的Pandas数据分析库

Pandas是一个基于 NumPy 的非常强大的开源数据处理库,它提供了高效、灵活和丰富的数据结构和数据分析工具,当涉及到数据分析和处理时,使得数据清洗、转换、分析和可视化变得更加简单和高效。本文中,我们将学习如何使用Pandas来处理…...

【深入剖析K8s】容器技术基础(一):从进程开始说起

容器其实是一种特殊的进程而已。 可执行镜像 为了能够让这些代码正常运行’我们往往还要给它提供数据’比如我们这个加法程序所需要的输人文件这些数据加上代码本身的二进制文件放在磁盘上’就是我们平常所说的一个程序,也叫代码的可执行镜像(executablejmage&…...

Mysql使用周期性计划任务定时备份,发现备份的文件都是空的?为什么?如何解决?

👨‍🎓博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 🐋 希望大家多多支…...

算法leetcode|90. 子集 II(rust重拳出击)

文章目录 90. 子集 II:样例 1:样例 2:提示: 分析:题解:rust:go:c:python:java: 90. 子集 II: 给你一个整数数组 nums ,其…...

git 泄露

得到flag有两种方法&#xff1a; 1、版本比对&#xff1a;git diff 用法&#xff1a;git diff <分支名1> <分支名2> 2、版本回退&#xff1a;git reset 用法&#xff1a;git reset --hard <分支名> python2 GitHack.py http://www.example.com/.git/ g…...

Elasticsearch知识

目录 Elasticsearch逻辑设计和物理设计 逻辑设计物理设计Elasticsearch原理 倒排索引文档的分析过程保存文档搜索文档写数据的底层原理 数据刷新&#xff08;fresh&#xff09;事务日志的写入ES在大数据量下的性能优化 文件系统缓存优化数据预热文档&#xff08;Document&…...

极智芯 | 解读国产AI算力天数智芯产品矩阵

欢迎关注我的公众号 [极智视界],获取我的更多经验分享 大家好,我是极智视界,本文分享一下 解读国产AI算力天数智芯产品矩阵。 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码和资源下载,链接:https://t.zsxq.com/0aiNxERDq 天数智芯属于国产 GPGPU 阵…...

Servlet-JAVA【笔记】

JAVA_WEBTomcattomcat工作流程servlet的生命周期ServletConfigServletContextHttpServletRequestHttpServletResponse前端提交的数据和请求域里的数据的区别&#xff1f;应用域和请求域的区别&#xff1f;如何做到两个servlet之间交流/共享数据&#xff1f;请求转发和重定向区别…...

【赵渝强老师】崖山数据库的体系架构

YashanDB数据库中有数据库和数据库实例这两个基本的概念&#xff0c;并且从体系架构的组成上看&#xff0c;YashanDB数据库又分为了存储结构、进程线程结构和内存结构。因此&#xff0c;要掌握YashanDB的体系架构就需要从数据库与数据库实例入手&#xff0c;并进一步深入到其内…...

QY-02-YS 雨量水位监测站 雨水情测报助手

雨量监测站配置1&#xff09;不锈钢支架&#xff0c;高度为1.2米2&#xff09;雨量传感器、水位传感器3&#xff09;太阳能供电&#xff1a;太阳能电池板&#xff0c;蓄电池4&#xff09;数据采集发送器数据传输采用4G和短信息兼容方式&#xff1b;具备向三个&#xff08;或以上…...

Ryujinx开源Switch模拟器:跨平台游戏体验的技术实现与优化指南

Ryujinx开源Switch模拟器&#xff1a;跨平台游戏体验的技术实现与优化指南 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 在游戏硬件快速迭代的今天&#xff0c;玩家们常常面临一个困…...

大型木构建筑市场洞察:949.1亿到1811亿的跨越与竞争格局

在全球建筑行业向绿色低碳转型的大背景下&#xff0c;大型木构建筑凭借其独特的低碳环保特性与现代建筑的安全性及功能性&#xff0c;正成为行业关注的焦点。据恒州诚思调研统计&#xff0c;2025年全球大型木构建筑收入规模约949.1亿元&#xff0c;到2032年收入规模将接近1811.…...

基于STM32LXXX的数字电位器(AD5160BRJZ5-RL7)驱动应用程序设计

一、简介: AD5160BRJZ5-RL7 是 ADI 推出的一款 256 位、SPI 接口数字电位器,采用 SOT-23-8 封装,阻值为 5kΩ,非常适合用于需要精确电阻调节的电路设计。 二、主要技术特性: 基本规格:单通道、256 抽头位置、端到端电阻 5kΩ(另有 10kΩ/50kΩ/100kΩ 版本),20% 电阻…...

RMBG-2.0与LangChain结合:智能图片处理工作流设计

RMBG-2.0与LangChain结合&#xff1a;智能图片处理工作流设计 1. 引言&#xff1a;当抠图遇上智能编排 想象一下这样的场景&#xff1a;你手头有几百张产品图片需要处理&#xff0c;有的要抠图换背景&#xff0c;有的要智能分类&#xff0c;还有的需要根据内容自动生成描述。…...

2026.04.07随记

1、PyTorch1、dir&#xff08;模块&#xff09;&#xff1a;查看任意模块的方法2、X.sum(0, keepdimTrue)&#xff1a;keepdimTrue保留维度X torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]) # &#xff08;2,3&#xff09; X.sum(0, keepdimTrue), X.sum(1, keepdimTrue)…...

iOS 15-16设备iCloud锁绕过技术全解析:从原理到实战应用

iOS 15-16设备iCloud锁绕过技术全解析&#xff1a;从原理到实战应用 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n iCloud激活锁作为苹果生态的重要安全机制&#xff0c;在保护用户数据安全的同时&am…...

二手硬盘避坑指南:用MHDD检测硬盘健康状态的5个关键指标(附真实案例)

二手硬盘避坑指南&#xff1a;用MHDD检测硬盘健康状态的5个关键指标&#xff08;附真实案例&#xff09; 在二手硬件交易市场&#xff0c;硬盘是最容易"踩雷"的品类之一。翻新盘、清零盘、扩容盘等造假手段层出不穷&#xff0c;普通消费者往往在数据丢失后才意识到问…...