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,
Django个人博客搭建教程---时间分类归档你不知道的鸿蒙——HarmonyOS记录一次游戏私服getshell过程mysql联合索引详解百度网盘偷偷更新,终于实现免费不限速了! 全球第一免费开源ERP Odoo Ubuntu最佳开发环境独家首发分享uniapp页面传值总结Android中获取当前正在显示的Activity实例SQL Server 数据库词汇表Python垃圾回收与内存泄露