iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >java中ArrayList与LinkedList对比详情
  • 614
分享到

java中ArrayList与LinkedList对比详情

javaarraylistlinkedlist 2023-05-31 15:05:54 614人浏览 八月长安
摘要

 ArrayList,LinkedList都是Collection接口的通用实现方式,两者采用了不用的存储策略,用来适应不同场合的需要。实现方式  ArrayList的内部采用集合的方式存储数据唯一需要注意的是对于容量超过阈值的处理逻辑,数

 ArrayList,LinkedList都是Collection接口的通用实现方式,两者采用了不用的存储策略,用来适应不同场合的需要。

实现方式

  ArrayList的内部采用集合的方式存储数据

java中ArrayList与LinkedList对比详情

唯一需要注意的是对于容量超过阈值的处理逻辑,数组的默认容量大小是10,最大容量是Integer.Max_Value,超过最大容量会抛内存溢出异常,

扩容机制看下面

java中ArrayList与LinkedList对比详情

扩容后的容量是原有容量的1.5倍

LinkedList的实现方式

内部采用双向链表node内部类来存储数据,由于采用了双向链表,LinkedList也可以当做栈和队列来使用,但是效率比较低,Java提供了ArrayDeqeue的高效率实现。

java中ArrayList与LinkedList对比详情

性能比较

在尾部插入效率上面,两者相差不会太大,但是LinkedList需要维护双向链表的关系,所有存储效率上面会略逊于ArrayList

java中ArrayList与LinkedList对比详情

ArrayList的时间主要耗时在容量扩容,数据迁移上面,如果我们一次性初始化容量,应该还可以有提升的空间,再来对比看看,有恐怖的50%的提升空间

java中ArrayList与LinkedList对比详情

Linked的优势在于头部插入的效率,只需要修改头部元素的指针就可以做到,而数组还需要移动后续的数据,所有效率远远低于LinkedList

java中ArrayList与LinkedList对比详情

对于get,set的操作,链表内部通过二分查找,数组可以通过下标直接访问元素,所以效率高于LinkedList

java中ArrayList与LinkedList对比详情

基于以上比较,我们基本上可以确定
如果只是存放数据,并进行j简单的迭代情况下,我们一般采用集合的效率最高,

如果涉及到频繁的修改元素,就应该采用LinkedList

希望本篇文章对您有所帮助

--结束END--

本文标题: java中ArrayList与LinkedList对比详情

本文链接: https://www.lsjlt.com/news/226845.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java中ArrayList与LinkedList对比详情
     ArrayList,LinkedList都是Collection接口的通用实现方式,两者采用了不用的存储策略,用来适应不同场合的需要。实现方式  ArrayList的内部采用集合的方式存储数据唯一需要注意的是对于容量超过阈值的处理逻辑,数...
    99+
    2023-05-31
    java arraylist linkedlist
  • Java中ArrayList、LinkedList、Vector、Stack的对比
    本篇内容介绍了“Java中ArrayList、LinkedList、Vector、Stack的对比”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
    99+
    2023-06-16
  • Java集合ArrayList与LinkedList详解
    目录前言ArrayList成员属性构造函数扩容机制add方法get方法remove方法小结LinkedListNode类成员属性构造函数添加获取删除小结前言 对于Java程序员,可以...
    99+
    2022-11-13
    Java集合ArrayList Java集合LinkedList
  • java中什么情况下使用ArrayList和LinkedList?
    什么情况用ArrayList or LinkedList呢ArrayList 和 LinkedList 是 Java 集合框架中用来存储对象引用列表的两个类。ArrayList 和 LinkedList 都实现 List 接口。先对List...
    99+
    2016-08-06
    java教程 ArrayList LinkedList
  • java中ArrayList与LinkedList有什么区别
    区别如下:ArrayList和LinkedList都实现了List接口。但是在数据结构的实现上ArrayList是数组,LinkedList是双向链表,所以LinkedList比ArrayList会更耗内存,因为它一个节点要存两个引用,一个...
    99+
    2017-05-17
    java入门 java arraylist linkedlist
  • C#与VB7的对比详情
    本篇内容主要讲解“C#与VB7的对比详情”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#与VB7的对比详情”吧!一、变量声明C#与VB7的变量基本上是一致的。与VB6不同,VB7在声明变量的同...
    99+
    2023-06-17
  • Java与kotlin详细对比
    在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言。 为什么选择 Kotlin? 简洁: 大大减少样板代码的数量。 安全: 避免...
    99+
    2022-11-12
  • java中类与对象的使用详情
    目录1. 类的定义2.对象的创建和使用如何得到对象如何使用对象3.学生对象-练习4.成员变量的默认值1. 类的定义 面向对象是通过类和对象去描述和代表万千事物对象的,首先我们需要知道...
    99+
    2022-11-13
  • java中-jar 与nohup的对比
    java中 -jar 与nohup的对比——作为Java程序员,经常会遇到这样一个问题,打个jar包,测试或者上线生产,于是乎面临的选择来了,java –jar or nohup? 下面我来扒一扒:一、  &n...
    99+
    2023-05-31
    java jar nohup
  • Java 中的类和对象详情
    目录1、类的定义2、类中变量的类型3、构造方法4、重载方法5、继承5.1 重写方法6、创建对象7、访问实例变量和方法8、比较对象8.1 使用 == 比较对象8.2 使用 equals...
    99+
    2022-11-12
  • java 中Comparable与Comparator详解与比较
    java 中Comparable与Comparator详解今天查看TreeMap的源码,发现其键必须是实现Comparable或者Comparator的接口时产生了一些兴趣,比如在TreeMap中的put方法分别对Comparable和Co...
    99+
    2023-05-31
    java comparable comparator
  • VueJs中toRef与toRefs函数对比详解
    目录正文toRef()函数与ref的不同toRefs()函数为啥需要toRef()与toRefs()函数总结正文 ref是处理基本数据类型响应式API函数,在setup中声明定义的...
    99+
    2023-03-15
    VueJs toRef与toRefs函数对比 VueJs toRef toRefs
  • 浅析java中next与nextLine用法对比
    java中next与nextLine用法区别:next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输...
    99+
    2023-05-31
    java next nextline
  • 详解express与koa中间件模式对比
    起因 最近在学习koa的使用, 由于koa是相当基础的web框架,所以一个完整的web应用所需要的东西大都以中间件的形式引入,比如koa-router, koa-view等。在koa的文档里有提到:koa的...
    99+
    2022-06-04
    详解 中间件 模式
  • Java中对HashMap的深度分析与比较(转)
    Java中对HashMap的深度分析与比较(转)[@more@]在Java的世界里,无论类还是各种数据,其结构的处理是整个程序的逻辑以及性能的关键。由于本人接触了一个有关性能与逻辑同时并存的问题,于是就开始研究这方面的问题。找遍了大大小小的...
    99+
    2023-06-03
  • 详解Unity中Mask和RectMask2D组件的对比与测试
    组件用法 Mask组件可以实现遮罩的效果,将一个图像设为拥有mask组件图像的子物体,最后就会隐藏掉子图像和mask图像不重合的部分。例如: (蓝色的圆形名为mask,数字图片名为...
    99+
    2022-11-12
  • 详解Python中Sync与Async执行速度快慢对比
    目录前记1.一个简单的例子2.一个io的例子3.总结前记 Python新的版本中支持了async/await语法, 很多文章都在说这种语法的实现代码会变得很快, 但是这种快是有场景限...
    99+
    2023-03-01
    Python Sync Async执行速度对比 Python Sync Async执行速度 Python Sync Async
  • java中int转string与string转int的效率对比
    目录int转string与string转int的效率对比string转int,两种方法int转string一般用三种方法string转int问题分析分析一波1、针对传入的字符串为空对...
    99+
    2022-11-13
  • Java中的maven和gradle的比较与使用详解
    目录1 构建工具的简单介绍2 maven、gradle的简单使用方法2.1 创建maven项目2.2 maven的使用2.3 gradle的使用3 总结1 构建工具的简单介绍 在代码...
    99+
    2022-11-13
  • Java Web中ServletContext对象详解与应用
    目录 ServletContext对象 获取上下文初始化参数的相关方法创建ServletContext对象  上下文初始化参数局部参数全局参数 ...
    99+
    2023-05-17
    javaweb servletcontext对象 java servletcontext
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作