ArrayList和LinkedList在性能上各 有优缺点,都有各自所适用的地方,总的说来可以描述如下:

  1.对ArrayList和LinkedList而言,在列表末尾增加一个元素所花的开销都是固定的。对 ArrayList而言,主要是在内部数组中增加一项,指向所添加的元素,偶尔可能会导致对数组重新进行分配;而对LinkedList而言,这个开销是统一的,分配一个内部Entry对象。

  2.在ArrayList的 中间插入或删除一个元素意味着这个列表中剩余的元素都会被移动;而在LinkedList的中间插入或删除一个元素的开销是固定的。

  3.LinkedList不 支持高效的随机元素访问。

  4.ArrayList的空 间浪费主要体现在在list列表的结尾预留一定的容量空间,而LinkedList的空间花费则体现在它的每一个元素都需要消耗相当的空间

  可以这样说:当操作是在一列数据的后面添加数据而不是在前面或中间,并且需要随机地访问其中的元素时,使用ArrayList会提供比较好的性能;当你的操作是在一列数据的前面或中间添加或删除数据,并且按照顺序访问其中的元素时,就应该使用LinkedList了。

转载于:https://www.cnblogs.com/clarke157/p/6341080.html

ArrayList和LinkedList相关推荐

  1. 比较ArrayList、LinkedList、Vector

    翻译人员: 铁锚 翻译时间: 2013年12月2日 原文链接: ArrayList vs. LinkedList vs. Vector 1. List概述 List,就如图名字所示一样,是元素的有序列 ...

  2. java arraylist和list_Java中ArrayList和LinkedList区别

    原文链接:http://pengcqu.iteye.com/blog/502676 一般大家都知道ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据 ...

  3. arraylist 后往前遍历_面试官:谈谈常用的Arraylist和Linkedlist的区别

    Arraylist:底层是基于动态数组,根据下表随机访问数组元素的效率高,向数组尾部添加元素的效率高:但是,删除数组中的数据以及向数组中间添加数据效率低,因为需要移动数组. 例如最坏的情况是删除第一个 ...

  4. ArrayList与LinkedList区别

    1.ArrayList实现了基于动态数组的数据结构,LinkedList是实现了基于链表的数据结构. 2.对于随机访问get/set,ArrayList优于LinkedList,因为LinkedLis ...

  5. 某团技术拷问:ArrayList 和 LinkedList 哪个更占空间?

    HR力荐了一个工作 4 年,目前年薪 40W+ 的候选人. 看他简历,从 JVM.MySQL.Redis,再到悲观锁.乐观锁一个都不缺,并发编程.分布式也都接触过,像是个实力派! 着急用人,就赶紧叫人 ...

  6. java什么时候用list_Java快问快答:用 ArrayList 还是 LinkedList?

    问题: 通常我会这么定义列表: List names = new ArrayList<>() names类型使用List接口,那么具体实现该如何选择. 什么时候应该用LinkedList替 ...

  7. 当面试官问我ArrayList和LinkedList哪个更占空间时,我这么答让他眼前一亮

    前言 今天介绍一下Java的两个集合类,ArrayList和LinkedList,这两个集合的知识点几乎可以说面试必问的. 对于这两个集合类,相信大家都不陌生,ArrayList可以说是日常开发中用的 ...

  8. 面试官:兄弟,说说 ArrayList 和 LinkedList 有什么区别

    作者 | 沉默王二 来源 | 沉默王二(ID:cmower) ArrayList 和 LinkedList 有什么区别,是面试官非常喜欢问的一个问题.可能大部分小伙伴和我一样,能回答出"Ar ...

  9. 深入理解java中的ArrayList和LinkedList

    杂谈最基本数据结构--"线性表": 表结构是一种最基本的数据结构,最常见的实现是数组,几乎在每个程序每一种开发语言中都提供了数组这个顺序存储的线性表结构实现. 什么是线性表? 由0 ...

  10. ArrayList和LinkedList区别

    ArrayList和LinkedList是两个集合类,用于存储一系列的对象引用(references).例如我们可以用ArrayList来存储一系列的String或者Integer.那么ArrayLi ...

最新文章

  1. PgSQL · 实战经验 · 如何预测Freeze IO风暴
  2. 如何优雅地退出python程序
  3. 如何高效的使用vim
  4. 解析中间人攻击(1/4)---ARP缓存中毒
  5. 打印机显示发送任务到服务器失败,G-FAX单机版操作指引-AOFAX—传真服务器.DOC
  6. 一个REST风格的URI设计方案[Blog Web Services]
  7. 必杀技———SQL基础整理系列(一)
  8. IE、FF CSS 兼容性、兼容浏览器的技巧 2
  9. html5增加用户代码,HTML5 用户注册页面源代码
  10. selenium+crop+chaojiying 之模拟登录超级鹰
  11. 机器学习的应用——关于正确应用机器学习
  12. 最实用的网上赚钱方法:这7个方法真的很实用哦!
  13. 永久域名存在吗?永久域名注册流程是什么样的?
  14. TLS1.2的握手过程——从代码角度
  15. 马云:我不为996辩护,我向奋斗者致敬
  16. 金格控件java版本_金格控件宝典(问题大全.docx
  17. 以太坊合并升级全面解读:初级篇
  18. 关于使用ComponentName连接俩个Activity运行闪退的问题
  19. Apache ServiceComb社区常见问题解答问答精选(第一期)
  20. 链接器lds文件简介

热门文章

  1. mysql 数据库隔离级别_彻底搞懂mysql数据库四种隔离级别,实验实战
  2. php 可用内存大小,关于php:致命错误:允许的内存大小为67108864字节耗尽
  3. Nginx源码分析 - HTTP模块篇 - HTTP模块的阶段处理PHASE handler(23)
  4. Redis 集群中的纪元(epoch)
  5. pythontkinter界面切换效果_python tkinter实现界面切换的示例代码
  6. 怎么判断网络回路_地暖管漏水怎么办?一打、二看、三确定,及时查出地暖管漏水点!...
  7. python文本情感分析代码_6行代码的超简单语言情感分析:由Python的Vader情感库实现,超级,使用,vaderSentiment...
  8. Redis的安装(windows)
  9. 建筑系学生怎么系统地学 Photoshop、CAD 之类软件?
  10. 第一次迭代 一次会议