LinkedeList 和 ArrayList 是常用的两种存储结构,都可以实现了 List 接口,那么它们之间有什么区别?下面本篇文章就来带大家了解一下 LinkedeList 和 ArrayList 之间的区别,希望对大家有所帮助。

# LinkedeList 和 ArrayList 的区别

# 1、数据结构不同

ArrayList 是 Array (动态数组) 的数据结构,LinkedList 是 Link (链表) 的数据结构。

# 2、效率不同

当随机访问 List(get 和 set 操作)时,ArrayList 比 LinkedList 的效率更高,因为 LinkedList 是线性的数据存储方式,所以需要移动指针从前往后依次查找。

当对数据进行增加和删除的操作 (add 和 remove 操作) 时,LinkedList 比 ArrayList 的效率更高,因为 ArrayList 是数组,所以在其中进行增删操作时,会对操作点之后所有数据的下标索引造成影响,需要进行数据的移动

# 3、自由性不同

ArrayList 自由性较低,因为它需要手动的设置固定大小的容量,但是它的使用比较方便,只需要创建,然后添加数据,通过调用下标进行使用;而 LinkedList 自由性较高,能够动态的随数据量的变化而变化,但是它不便于使用。

# 4、主要控件开销不同

ArrayList 主要控件开销在于需要在 lList 列表预留一定空间;而 LinkList 主要控件开销在于需要存储结点信息以及结点指针信息。

简单的写了一个 List 集合(ArrayList 和 LinkedList 的 Demo

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import java.util.*;

public class Main{
public static void main(String[] args) {
/*
* ArrayList和LinkedList的区别:
* 两者方法完全通用,效果也一样。只不过在存储的内部结构是不同的。
* ArrayList(动态数组)本身自带索引,更善于查找
* LinkedList(链式结构)更善于添加和删除
* */
List list = new ArrayList();
//List list = new LinkedList();

list.add("窗前明月光");//添加值
list.add("疑是地上霜");
list.add("举头望明月");
list.add("低头思故乡");

list.add(null);
list.remove(1);
list.add(1,"我插入一句话");//在索引为1的后面插入
list.set(1, "这句话我改了");//更改索引为1的值

System.out.println(list.size());//得到长度
System.out.println(list.get(1));//得到索引为1下标的值

}

}

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

码坑 微信支付

微信支付

码坑 支付宝支付

支付宝支付

码坑 QQ支付

QQ支付