Java中Arraylist与linkedlist的区别

如题所述

ArrayList 的内部实现了长度可变的数组,在内存中分配连续空间,从概念上讲,它更像数组。

ArrayList 的查询效率比较高,增删动作的效率比较低,适用于查询比较频繁,增删动作较少的集合。

ArrayList

LinkedList 的内部实现是基于一组连接的记录,所以,它更像一个链表结构。

LinkedList 的查询效率低,但是增删效率很高。适用于增删动作的比较频繁,查询次数较少的集合。

LinkedList

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-12-21
ArrayList 底层是用数组实现的,更擅长遍历搜索查找,因为数组有下标的概念, 可以很方便的跳到指定的位置; 不擅长插入删除操作;
LinkedList 底层是用链表实现的, 链表是一个个节点链起来的, 擅长插入删除等操作(某节点断开去掉或者重新 连接上新的节点,这类操作比较快捷),搜索查询的话只能是一个节点一个节点的来。
数据量小的情况下两者的效率差不多, 基本用法也差不多,数据量很大的情况下还是有点差距的。看你平时侧重哪方面的需求了~
第2个回答  2011-12-21
ArrayList其实就是数组
看名字LinkedList是链表性质的
第3个回答  推荐于2017-10-12
List: 有顺序的,元素可以重复
遍历:for 迭代
排序:Comparable Comparator Collections.sort()
ArrayList:底层用数组实现的List
特点:查询效率高,增删效率低 轻量级 线程不安全
遍历:
ArrayList<String> al=new ArrayList();
al.add("winsun"); al.add("weixin"); al.add("mybole");
for(int i=0;i<al.size();i++)
{
System.out.println(al.get(i));
}//for遍历
Iterator it=al.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}//迭代器遍历
LinkedList:底层用双向循环链表 实现的List
特点:查询效率低,增删效率高
Vector: 底层用数组实现List接口的另一个类
特点:重量级,占据更多的系统开销 线程安全本回答被提问者采纳

linkedlist和arraylist的区别
1、数据结构不同。ArrayList是Array(动态数组)的数据结构,LinkedList是Link(链表)的数据结构。2、效率不同。当随机访问List(get和set操作)时,ArrayList比LinkedList的效率更高,因为LinkedList是线性的数据存储方式,所以需要移动指针从前往后依次查找。当对数据进行增加和删除的操作(add和remove操作)时,Lin...

arraylist和linkedlist的区别
ArrayList和LinkedList的区别 一、数据存储方式 ArrayList:基于数组实现,元素在内存中连续存储。LinkedList:基于链表实现,元素在内存中的存储位置不连续,通过指针连接。二、性能特点 1. 随机访问性能:ArrayList的随机访问性能优于LinkedList,因为ArrayList通过索引访问元素的时间复杂度为O,而LinkedList则需要遍...

arraylist和linkedlist的区别
一、查找元素方法不同:1、arraylist可以直接通过数组下标找到元素。2、linkedlist要通过移动指针遍历每个元素,直到找到需要的元素为止。arraylist查找元素的速度比linkedlist快。二、空间消耗。1、arraylist的空间浪费主要体现在在list结尾预留了一定的容量空间。2、而linkedlist的空间浪费则体现在它的每一个元素...

arraylist和linkedlist的区别
ArrayList与LinkedList之间的主要差异体现在数据存储方式、性能特点、内存使用以及线程安全性方面。1. 数据存储方式 - ArrayList基于数组实现,其元素在内存中是连续存储的,这使得它能够快速随机访问。- LinkedList基于链表实现,其元素在内存中的存储是离散的,通过指针相连,这影响了它的随机访问性能。2. 性...

arraylist和linkedlist的区别
1. LinkedList和ArrayList的差别主要来自于Array和LinkedList数据结构的不同。ArrayList是基于数组实现的,LinkedList是基于双链表实现的。另外LinkedList类不仅是List接口的实现类,可以根据索引来随机访问集合中的元素,除此之外,LinkedList还实现了Deque接口,Deque接口是Queue接口的子接口,它代表一个双向队列,...

arraylist和linkedlist的区别
一、基本区别:1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。二、ArrayList和LinkedList在性能上各有优缺点,都有...

arraylist 和 linkedlist 有什么区别
ArrayList和LinkedList都实现了List接口,有以下的不同点:1、ArrayList是基于索引的数据接口,它的底层是数组。它可以以O(1)时间复杂度对元素进行随机访问。与此对应,LinkedList是以元素列表的形式存储它的数据,每一个元素都和它的前一个和后一个元素链接在一起,在这种情况下,查找某个元素的时间复杂...

ArrayList和LinkedList的区别
ArrayList和LinkedList的大致区别如下:1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。LinkedList链表由一系列表项连接而...

ArrayList和LinkedList的区别是什么?
ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。ArrayList就是动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了动态的...

arraylist和linkedlist重大区别?
1. ArrayList是实现了基于动态数组的数据结构,而LinkedList是基于链表的数据结构;2. 对于随机访问get和set,ArrayList要优于LinkedList,因为LinkedList要移动指针;3. 对于添加和删除操作add和remove,一般大家都会说LinkedList要比ArrayList快,因为ArrayList要移动数据。但是实际情况并非这样,对于添加或删除,...

相似回答