登录/注册
L
个人中心
我的账号
我的订单
我的消息
VIP计划
注销登录
首页
小左图工
小左软件
小左图工
小左校验
在线工具
JSON在线格式化
CSS在线格式化
HTM在线格式化
Javascript在线格式化/压缩
技术支持
小左图工
小左图工使用教程
小左图工版本发布
博文分享
教程分享
Java教程
Spring
Spring Cloud
Vert.x
Thymeleaf
JavaFX教程
Python教程
软件使用
Android教程
nginx教程
微信
WEB技术
JavaScript
Vue.js教程
Web Editor
SEO教程
Docker部署案例
Linux和Shell教程
Linux安全防护
办公技巧
资源分享
玩机测评
路由器
测评
群晖
玩机百科
搜索
首页
教程分享
Java教程
博文分享
java基础ArrayList与LinkedList的区别以及使用场景
详情
java基础ArrayList与LinkedList的区别以及使用场景
教程分享
>
Java教程
>
博文分享
(2504)
2024-04-17 12:33:22
一.ArrayList与LinkedList的区别
说法一:
因为Array是基于索引(index)的数据结构,它使用索引在数组中搜索和读取数据是很快的。Array获取数据的时间复杂度是O(1),但是要新增或者删除数据却是开销很大的,因为这需要重排数组中的所有数据。
相对于ArrayList,LinkedList插入是更快的。因为LinkedList不像ArrayList一样,不需要改变数组的大小,也不需要在数组装满的时候要将所有的数据重新装入一个新的数组,这是ArrayList最坏的一种情况,时间复杂度是O(n),而LinkedList中插入或删除的时间复杂度仅为O(1)。ArrayList在插入或sh数据删除需要更新索引(除了插入数组的尾部)。
LinkedList需要更多的内存,因为ArrayList的每个索引的位置是实际的数据,而LinkedList中的每个节点中存储的是实际的数据和前后节点的位置
说法二:
ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
以上说法均为正确。
二.ArrayList与LinkedList的使用场景
LinkedList:
你的应用不会随机访问数据。因为如果你需要LinkedList中的第n个元素的时候,你需要从第一个元素顺序数到第n个数据,然后读取数据。
你的应用更多的插入和删除元素,更少的读取数据。因为插入和删除元素不涉及重排数据,所以它要比ArrayList要快。
ArrayList:
你的应用需要随机访问数据,基本不会在list中插入或者删除元素
Java基础
ArrayList
LinkedList
https://www.leftso.com/article/292.html
相关文章
java基础ArrayList与LinkedList的区别以及使用场景
本文组要摘录了网上各位大佬的总结。作为笔记搜录。尽量详细的讲解ArrayList与LinkedList的区别以及在何时选择那个用。
Java基础
ArrayList
LinkedList
java编程基础数组ArrayList使用详解
java编程基础数组ArrayList使用详解
Java编程
java基础
java
ArrayList
Java如何复制目录_Java基础教程系列
Java如何复制目录,Java基础教程系列,如果要将目录及其包含的所有子文件夹和文件从一个位置复制到另一个位置,请使用下面的代码,该代码使用递归遍历目录结构,然后使用Files.copy()函数...
Java
io
Java基础教程
Java基础多线程之线程同步(主线程等待子线程结束)
Java基础多线程之主线程等待子线程结束,Java基础编程之多线程入门学习篇。主要讲解几种方法来实现Java多线程中主线程等待子线程结束的最快方式。
Java基础
Java多线程
Java基础JVM中堆和栈理解
Java基础JVM中堆和栈理解,收集各大网站各大牛人的语录,在Java中,内存主要分为两种,一种是栈(stack)内存,另一种就是堆内存(heap)(某些情况下说的堆栈内存是指栈内存)。
java基础
Java堆栈
heap
stack
java编程中float/double类型的正确比较方法
java基础编程中float/double类型的正确比较方法
java
java基础
Java编程
Java Bean 基础验证
在这篇快速文章中,我们将介绍使用标准框架 - JSR 380(也称为Bean Validation 2.0)来验证Java bean的基础知识。当然,在大多数应用程序中验证用户输入是超常见的需求...
java
java bean
Java正则表达式基础使用
Java正则表达式基础使用packageorg.xqlee.utils.regular;importjava.util.regex.Matcher;importjava.util.regex.P...
Caused by: java.lang.RuntimeException: Exception in Application start method
问题描述idea启动maven的JavaFX项目报错:Exception in Application start method java.lang.reflect.InvocationTarg...
JavaFX
idea
maven
java
Java编程之Spring Cloud Hystrix Circuit熔断/断路
Java编程之Spring Cloud Hystrix Circuit熔断/断路
Java编程
spring框架
mysql存储过程基础实例
mysql存储过程基础实例
mysql
数据库
存储过程
Vert.x java 入门
Vert.x java 入门,Vert.x这个框架在常规的web业务开发中估计还不是很成熟。但是了解了他的一些原理我觉得可以有一番作为。今天主要简单讲解下eclipse Vert.x是什么有什么...
Eclipse Vert.x 入门
vert.x
java
spring boot FastDFS Java client使用-Java编程
Java编程之spring boot FastDFS Java client使用,Java编程,FastDFS Java客户端
Java编程
FastDFS Java客户端
java8 Function函数编程详解
java8 Function函数编程详解Function函数基础定义和使用 public static void t1(){ Function<Integer,Int...
java 8 Function
java 8函数编程
函数编程
Java
Java基础之class,Object,Class的区别
Java中几个常见的基本元素class,Object,Class的区别说明
java
Class与Object
小左图工
万能的图片格式转换工具
去体验
广告招商
合规广告欢迎咨询
咨询
目录
热门文章
xmind 8 update 7 pro 3.7.7 绿色免安装版下载
[教程分享]
Thymeleaf 递归
[Thymeleaf]
i3 4130/T怎么样_i3 4130跑分
[教程分享]
application.properties中文值乱码终极解决办法
[Java教程]
java HashSet使用教程
[Java教程]
最近更新
OpenJDK Tess4j Tesseract环境构建镜像
[Docker部署案例]
WebP转PNG一键搞定!小左图工软件让图片格式转换更轻松
[小左图工使用教程]
轻松搞定TIF转JPG!小左图工软件助你高效完成图片格式转换
[小左图工使用教程]
一键批量PNG转JPG!小左图工软件让你高效完成图片格式转换
[小左图工使用教程]
小左图工专业版解锁指南:轻松获取高级功能
[小左图工使用教程]
使用协议和Cookie告知:
🍪
使用协议和Cookie告知:
我们需要使用cookie来确保您在我们的网站上获得最佳体验。另外还您还需遵守本站相关协议。:
了解更多
我同意