• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Java > java中ArrayList与LinkedList对比详情

java中ArrayList与LinkedList对比详情

作者:也有涯 字体:[增加 减小] 来源:互联网 时间:2017-05-28

也有涯 通过本文主要向大家介绍了arraylist linkedlist,java linkedlist,java linkedlist用法,java中linkedlist,java.util.linkedlist等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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

实现方式

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

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

扩容机制看下面

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

LinkedList的实现方式

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

性能比较

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

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

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

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

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

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

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

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Java中ArrayList和LinkedList之间的区别_动力节点Java学院整理
  • java中ArrayList与LinkedList对比详情
  • Java中ArrayList和LinkedList之间的区别_动力节点Java学院整理
  • java中ArrayList与LinkedList对比详情

相关文章

  • 2017-05-28Java Iterator迭代器_动力节点Java学院整理
  • 2017-05-28Java中初始化块详解及实例代码
  • 2017-05-28Java微信公众平台开发(1) 接入微信公众平台
  • 2017-05-28MyBatis+MySQL 返回插入的主键ID的方法
  • 2017-05-28SpringBoot定时任务两种(Spring Schedule 与 Quartz 整合 )实现方法
  • 2017-05-28java利用delayedQueue实现本地的延迟队列
  • 2017-05-28SpringBoot JPA 表关联查询实例
  • 2017-05-28Java本地缓存的实现代码
  • 2017-05-28java 实现文件夹的拷贝实例代码
  • 2017-05-28Spring Boot JPA访问Mysql示例

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • SpringBoot连接MYSQL数据库并使用JPA进行操作
    • spring cglib 与 jdk 动态代理
    • 详解Java中的 枚举与泛型
    • Java Calendar类的详解及使用实例
    • Java this、final等关键字总结
    • SpringBoot JPA 表关联查询实例
    • Java 并发编程之线程挂起、恢复与终止
    • Java实现数组反转翻转的方法实例
    • 详解Spring框架---IOC装配Bean
    • Ubuntu快速安装eclipse

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有