ArrayList和LinkedList的区别
精华
小牛编辑
196浏览
2023-03-14
1 ArrayList和LinkedList的区别
ArrayList和LinkedList都实现List接口并维护插入顺序。两者都是非同步(线程不安全)类。
下面列出了ArrayList和LinkedList类之间的区别。
ArrayList | LinkedList |
---|---|
ArrayList在内部使用动态数组存储元素。 | LinkedList在内部使用双向链表来存储元素。 |
使用ArrayList增删操作很慢,因为它的内部使用数组。如果从ArrayList中删除了任何元素,则所有位都将在内存中移位。 | 使用LinkedList增删操作比ArrayList更快,因为它使用了双向链接列表,因此不需要在内存中进行任何移位。 |
ArrayList类只能用作列表,因为它仅实现List。 | LinkedList类可以实现列表和队列,因为它实现了List和Deque接口。 |
ArrayList 更适合存储和访问数据。 | LinkedList 更适合处理数据。 |
2 Java ArrayList和LinkedList的例子
让我们看一个简单的示例,其中我们同时使用ArrayList和LinkedList。
package cn.xnip;
/**
* 小牛知识库网: https://www.xnip.cn
*/
/**
* Java ArrayList和LinkedList的例子
*/
import java.util.*;
class TestArrayLinked{
public static void main(String args[]){
List<String> al=new ArrayList<String>();//创建ArrayList
al.add("eric");//添加元素到ArrayList
al.add("jack");
al.add("rose");
al.add("lucy");
List<String> al2=new LinkedList<String>();//创建LinkedList
al2.add("James");//添加元素到LinkdedList
al2.add("Tomc");
al2.add("Lucas");
al2.add("Macy");
System.out.println("arraylist: "+al);
System.out.println("linkedlist: "+al2);
}
}
输出结果为:
arraylist: [eric, jack, rose, lucy]
linkedlist: [James, Tomc, Lucas, Macy]