第十二章 ArrayList和 LinkedList的区别
创始人
2024-06-01 01:35:32

ArrayList:

基于动态数组(自动扩容),连续内存存储,由于底层是数组,适合使用下标进行访问,但扩容一直都是数组的缺点,所以使用尾插法进行扩容可以有效提高扩容效率。还有就是创建ArrayList时可以预估所需要的内存空间,避免减少扩容的次数,利用好这两点可以极大的提高ArrayList的性能也可与LinkedList一较高下。

LinkedList:

基于链表,可以存储在分散的内存中,内存空间紧缺时的第一首选,适合做数据的插入和删除,不适合做查询,需要逐一遍历linkedList必须使用iterator迭代器进行遍历,不能使用for循环 (也不是不能使用,效率低到极致,没人用),因为每次使用for循环的get(i)进行遍历都会重新遍历,性能消耗极大。

另外不能使用indexOf等返回索引,使用indexOf对list进行遍历,当结果为空时会遍历整个列表。

注意:虽然LinkedList的插入和删除很快,但是它的内部维护了一个node节点内部类,每次往LinkedList中新增一个数据都会创建node节点对象,一旦插入的node节点过多就会非常影响LinkedList的性能。

相关内容

热门资讯

原创 中... 当韩国总统李在明踏上中国的领土与中方签下多份文件,外界都以为中韩关系将迎来“破冰”之际,一个细节却让...
最新或2023(历届)职工生育... 生育保险待遇申领流程  符合国家计划生育政策的职工参加生育保险并连续缴纳生育保险费满6个月,次月起享...
最新或2023(历届)兰州市调...   4月15日,从兰州市人社局获悉,为了进一步完善全市职工生育保险待遇,更好地保障参保职工合法权益,...
男职工为什么也要缴纳生育保险金...   问: “每次看到工资条我都不解,您说我都50多岁的人了,又是个老爷们儿,每月还得缴纳生育险,这不...
最新或2023(历届)上海生育...  生育保险待遇申领条件:  1、符合国家、省、市计划生育政策;  2、按照规定在定点医疗机构进行生育...