登录/注册
L
个人中心
我的账号
我的订单
我的消息
VIP计划
注销登录
首页
教程分享
Java教程
Spring
Spring Cloud
Vert.x
Thymeleaf
JavaFX教程
Python教程
软件使用
Android教程
nginx教程
微信
WEB技术
JavaScript
Vue.js教程
Web Editor
SEO教程
Docker部署案例
Linux和Shell教程
Linux安全防护
办公技巧
资源分享
玩机测评
路由器
测评
群晖
玩机百科
在线工具
二维码在线生成工具
Base64在线加解密工具
CPU工具箱
GPU工具箱
MD5在线加密工具
Url在线加解密工具
CPU性能排行榜
GPU性能榜
小左软件
小左图工
小左校验
技术支持
小左图工教程
搜索
首页
教程分享
Java教程
java基础ArrayList与LinkedList的区别以及使用场景
详情
java基础ArrayList与LinkedList的区别以及使用场景
教程分享
>
Java教程
(2364)
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 Queue队列使用入门详解
Java Queue队列使用入门详解
Queue
Java
队列
Java基础JVM中堆和栈理解
Java基础JVM中堆和栈理解,收集各大网站各大牛人的语录,在Java中,内存主要分为两种,一种是栈(stack)内存,另一种就是堆内存(heap)(某些情况下说的堆栈内存是指栈内存)。
java基础
Java堆栈
heap
stack
java编程中float/double类型的正确比较方法
java基础编程中float/double类型的正确比较方法
java
java基础
Java编程
Java正则表达式基础使用
Java正则表达式基础使用packageorg.xqlee.utils.regular;importjava.util.regex.Matcher;importjava.util.regex.P...
Java编程之Spring Cloud Hystrix Circuit熔断/断路
Java编程之Spring Cloud Hystrix Circuit熔断/断路
Java编程
spring框架
Java List集合交集并集
数组转集合List<String>l; list=Arrays.asList("1","2");注意转换出来的List为Arrays内部类集合,与常规的ArrayList有区别,比如常...
Java 集合
Java List
Java编程之Spring Boot通过JMSTemplate 整合ActiveMQ
Java编程之Spring Boot通过JMSTemplate 整合ActiveMQ
spring boot
java编程
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
小左图工
万能的图片格式转换工具
去体验
广告招商
合规广告欢迎咨询
咨询
热门文章
一名3年工作经验的java程序员应该具备的技能
[Java教程]
spring boot使用Jenkins部署Spring Boot项目
[Spring]
thymeleaf 设置不校验html标签
[Thymeleaf]
spring boot mybatis 配置多数据源
[Spring]
spring boot thymeleaf使用介绍
[Thymeleaf]
最近更新
Nginx docker-compose 部署案例
[Docker部署案例]
中标麒麟Docker离线安装x86
[Linux和Shell教程]
AngularJs可拖拽排序列表
[WEB技术]
linux防火墙 ufw、firwalld、iptables区别
[Linux和Shell教程]
ufw无效 - Docker 暴露端口无法禁用【已解决】
[教程分享]
使用协议和Cookie告知:
我们需要使用cookie来确保您在我们的网站上获得最佳体验。另外还您还需遵守本站相关协议。:
了解更多
我同意