首先,底层数据结构不同
ArrayList底层基于数组实现,连续内存存储,需要预先申请分配一段连续的内存空间(创建数组对象),适合下标访问(随机访问),需要创建多大的数组不好确定,如果数组长度过大,会造成内存空间浪费的问题,如果数组长度过小,当数组已满时想要添加新的元素,就需要创建一个新的数组,新的数组长度是旧数组的1.5倍,并把数据从旧数组复制到新数组中,然后才能添加新的元素。创建新的数组、旧数组数据复制到新数组,都是比较重量级的操作。另外,如果不是在尾部插入、删除数据还会涉及到元素的移动,使用尾插法并指定初始容量可以极大提高性能,甚至超过LinkedList,因为LinkedList需要创建大量的node对象。
LinkedList底层基于双向链表实现,元素可以储存在分散的内存中,适合做数据插入操作及删除操作,不适合随机查询,需要逐一遍历。
其次,ArrayList和LinkedList都实现了List接口,但是LinkedList还额外地实现了Deque接口,所以LinkedList还可以当作队列来用,利用双向链表和队列的特性,还是可以当作栈来使用。
微信号:sansui663(长安复制)
本文由知识库于2021-12-02发表在龙哥云资源网,如有疑问,请联系我们。本文链接:https://www.longgeyun.com/knowledge/16639.html
上一篇怎么分盘win10比较好(win10固态512最佳分区)
下一篇哪款手机拍照好看(目前像素最好的手机排行)
高校最常见的食物中毒有哪些
急性肠胃炎与食物中毒怎么分辨
莫代尔面料和纯棉面料哪个好内裤 哪个儿童可以穿
为什么说开速腾的都不是一般人 速腾开出去有面子吗
活珠子和毛蛋的区别在哪里 哪个好吃
家里放石头的八大禁忌有哪些 家中石头最佳摆放位置
怎么判断自己帅还是丑男 男生怎样越长越帅
单身女生红绳戴左手还是右手 女生红绳戴哪里合适
Pr2020零基础快速入门
文字转语音App最新版3.0
APP下载页源码-带后台