ArrayList和LinkedList比较

在使用List的时候,经常会出现使用ArrayList和LinkedList,但是到底什么时候使用ArrayList、什么时候使用LinkedList,在这里简单的说明一下。

ArrayList原理

ArrayList实际上对应着数据结构数组(Array)。

ArrayList的数据存储结构是数组。数组的特点是:

* 占用空间固定,但是当数据不多的时候,浪费空间;
* 插入数据时,由于空间大小固定,所以不需要给数据分配空间,只要将数据插入即可。但是插入时,后面的数据需要移动空间。速度较慢;
* 删除数据时,需要将后面的数据移动空间。速度较慢;
* 获取指定位置数据时,可以用数据的下标直接定位。速度快;
LinkedList原理

LinkedList实际上对应着数据结构中的链表。

LinkedList的数据存储结构是链表。链表的特别是:

* 占用空间不固定,随数据多少动态分配,不浪费空间;
* 插入数据时,需要动态分配空间,然后在进行插入操作。后面的数据不需要移动。速度快;
* 删除数据时,直接删除,并且释放空间。后面的数据不需要移动。速度快;
* 获取指定位置数据时,无法直接定位,需要一个一个的查找,直到找到对应数据,速度慢;
ArrayList和LinkedList比较

根据上面对ArrayList和LinkedList原理的说明,大致总结如下。

ArrayList和LinkedList特点比较

ArrayList LinkedList
插入操作 速度慢
删除操作 速度慢
获得指定位置数据 速度快
ArrayList和LinkedList用途

如果操作集中在插入、删除,那就用LinkedList吧,这样速度快;

如果操作集中在获取指定位置数据,那就用ArrayList,这样速度快;

注:获取指定位置数据的操作,目前看有查找、遍历等。

注:关于什么是数组(Array),什么是链表。大家看一下数据结构,或者百度一下,自行补脑。呵呵

技术
©2019-2020 Toolsou All rights reserved,
JVM概述VUE+Canvas 实现桌面弹球消砖块小游戏javascript事件(零基础详解)Pikachu漏洞练习平台明解c/c++程序的内存模型--内存四区python实现vlookup_干货一:怎么在python里面实现vlookupswift 5.0 创建一个获取验证码的按钮,实现倒计时效果首期500亿,成立新部门,腾讯准备做什么?关于蓝桥杯大赛,你应该了解的那些事!解决Selenium ActionChains拖动元素无效