List简介

List简介

List 四种实现类

  1. ArrayList
  2. LinkeList
  3. Vector
  4. Stack

四种List的数据结构

  1. ArrayList
    动态数组,初始化分配一定长度的数组

  2. LinkeList
    双向链表

  3. Vector
    与 ArrayList 一样使用动态数组作为存储结构

  4. Stack
    Stack 继承 Vector ,不同的点是 Stack 是栈而不是队列,实现先进后出

四种List的不同使用场景的效率

四种 List 实现其实根据数据结构可以分为两类,ArrayList,Vector,Stack 都是动态数组划分为一类,后面一ArrayList作为代表作比较分析。另一类就用是双向链表(包含当前的值和前节点和后节点e)实现 LinkedList。

根据链表和数组的比较,链表在插入,删除操作效率更高,但是随机读取效率相比数组就比较低。
相反的,插入或删除一个数据就需要更长的时间,因为被修改位置后续的坐标全都要后移一位,所以耗时较长。

源码中可以看出,LinkedList 寻找的 index 大于List 长度的一半时,则会从后面开始读取数据
而数组的 List 直接根据下标返回所需的元素

ArrayList 与 Vector 关于现场安全的比较

ArrayList 非现成安全,Vector 线程安全,所以在对单线程中使用 ArrayList 的效率要高于
Vector

ArrayList 的遍历速度比较

随机范围的效率最高
随机访问 > for循环 > 遍历器

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一篇文章中介绍了List集合的一些通用知识。本篇文章将集中介绍了List集合相比Collection接口增加的一...
    Ruheng阅读 13,062评论 0 28
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,896评论 18 399
  • 本文出自 Eddy Wiki ,转载请注明出处:http://eddy.wiki/interview-java.h...
    eddy_wiki阅读 4,852评论 0 16
  • 本文取自工匠若水的qq群里的Java基础题目,把里面有关Java集合放在一起。全文github地址 35.Arra...
    蝉翅的空响阅读 1,696评论 0 0
  • 南京是一个温和而朦胧的城市,带着如烟的细雨,带着潮潮的湿热,灰蒙蒙或者浅蓝的天空,云朵摊开一片把天空整个遮蔽...
    南玉水阅读 1,462评论 0 1