登录/注册
李
用户名称
个人主页
我的账号
我的作品
我的订单
我的消息
VIP计划
注销登录
首页
教程分享
Java教程
Android教程
Vue.js教程
Python教程
SEO教程
软件使用
JavaFX教程
WEB基础
Linux和Shell教程
Linux安全防护
Linux安全防护
nginx教程
办公技巧
微信小程序
玩机测评
路由器
测评
群晖
玩机百科
资源分享
在线工具
抖音无水印解析
MD5在线加密工具
Url在线加解密工具
CPU性能排行榜
GPU性能榜
二维码在线生成工具
Base64在线加解密工具
CPU工具箱
GPU工具箱
小左软件
小左图工
小左校验
搜索
java基础ArrayList与LinkedList的区别以及使用场景
位置:
首页
>文章>详情 分类:
教程分享
>
Java教程
阅读
(1141)
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中插入或者删除元素
标签2:
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...
小左图工
万能的图片格式转换工具
去体验
广告招商
合规广告欢迎咨询
咨询
热门文章
MySQL 5.5 docker 部署手册
[软件使用]
Idea Git Merge 操作不自动提交
[Java教程]
氮化镓65W充电器购买建议
[测评]
windows 如何更改Docker镜像目录
[Java教程]
Java Code Review
[Java教程]
Spring boot 项目优雅关闭while循环线程
[Java教程]
npm 配置私服库地址
[Vue.js教程]
某东电话卡怎么样?千万不要用巨坑!
[测评]
mybatis plus 自增长主键获取
[Java教程]
spring boot 2.3 hibernate validate框架未引入
[Java教程]
最新发布:
微信小程序文件实现下载并预览(ios及安卓手机)
[教程分享]
Android 不编译直接重新签名证书处理
[教程分享]
长安三代CS75PLUS车机adb密码及adb shell连接密码
[教程分享]
使用adb给安卓设备安装/卸载apk软件
[教程分享]
Ehcache3.9+每个key指定不同时间
[教程分享]
Ubuntu通过nvm脚本工具安装指定版本号nodejs
[教程分享]
MyBatis Insert插入数据返回自增长主键值
[Java教程]
npm通过verdaccio搭建私服镜像库
[教程分享]
npm报错 ERESOLVE unable to resolve dependency tree【已解决】
[教程分享]
Docker 工作目录迁移
[教程分享]
使用协议和Cookie告知:
我们需要使用cookie来确保您在我们的网站上获得最佳体验。另外还您还需遵守本站相关协议。
了解更多
我同意