登录/注册
L
个人中心
我的账号
我的订单
我的消息
VIP计划
注销登录
首页
教程分享
Java教程
Android教程
Vue.js教程
Python教程
SEO教程
软件使用
资源分享
JavaFX教程
WEB基础
Linux和Shell教程
Linux安全防护
Linux安全防护
nginx教程
办公技巧
微信
玩机测评
路由器
测评
群晖
玩机百科
在线工具
抖音无水印解析
二维码在线生成工具
Base64在线加解密工具
CPU工具箱
GPU工具箱
小红书无水印解析
MD5在线加密工具
Url在线加解密工具
CPU性能排行榜
GPU性能榜
小左软件
小左图工
小左校验
软件支持
小左图工教程
搜索
首页
> 文章>
详情
java基础ArrayList与LinkedList的区别以及使用场景
教程分享
>
Java教程
(1442)
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常见面试题
java常见面试题之冒泡排序
java面试题
冒泡排序
Java Bean 基础验证
在这篇快速文章中,我们将介绍使用标准框架 - JSR 380(也称为Bean Validation 2.0)来验证Java bean的基础知识。当然,在大多数应用程序中验证用户输入是超常见的需求...
java
java bean
Java基础JVM中堆和栈理解
Java基础JVM中堆和栈理解,收集各大网站各大牛人的语录,在Java中,内存主要分为两种,一种是栈(stack)内存,另一种就是堆内存(heap)(某些情况下说的堆栈内存是指栈内存)。
java基础
Java堆栈
heap
stack
Java Queue队列使用入门详解
Java Queue队列使用入门详解
Queue
Java
队列
java编程中float/double类型的正确比较方法
java基础编程中float/double类型的正确比较方法
java
java基础
Java编程
Java正则表达式基础使用
Java正则表达式基础使用packageorg.xqlee.utils.regular;importjava.util.regex.Matcher;importjava.util.regex.P...
Java List集合交集并集
数组转集合List<String>l; list=Arrays.asList("1","2");注意转换出来的List为Arrays内部类集合,与常规的ArrayList有区别,比如常...
Java 集合
Java List
java8 Function函数编程详解
java8 Function函数编程详解Function函数基础定义和使用 public static void t1(){ Function<Integer,Int...
java 8 Function
java 8函数编程
函数编程
Java
Java8 Stream之list转map
//声明一个List集合List<Person>l; list = new ArrayList(); list.add(new Person("1001", "小A...
stream
Java 8 stream
mysql存储过程基础实例
mysql存储过程基础实例
mysql
数据库
存储过程
Java 类加载机制
Java 类加载机制
Java
类加载机制
小左图工
万能的图片格式转换工具
去体验
广告招商
合规广告欢迎咨询
咨询
热门文章
application.properties中文值乱码终极解决办法
[Java教程]
java HashSet使用教程
[Java教程]
webservice面试题_WebService面试回答_WebService基础知识普及
[Java教程]
Java多线程编程入门到初级
[Java教程]
黑群晖二合一安装图文详细教程
[群晖]
最近更新
CKEditor5是开源免费的吗
[WEB基础]
Ckeditor5上传图片后如何添加自定义属性和class
[WEB基础]
CKEditor4 去掉图片上传预览描述字
[WEB基础]
CKEditor5 入门使用
[WEB基础]
CKEditor5 完整使用配置参考
[WEB基础]
使用协议和Cookie告知:
我们需要使用cookie来确保您在我们的网站上获得最佳体验。另外还您还需遵守本站相关协议。:
了解更多
我同意