Java中ArrayList与LinkedList的区别
一般大家都知道ArrayList和LinkedList的区别:
1. ArrayList的实现是基于数组,LinkedList的实现是基于双向链表。
2. 对于随机访问,ArrayList优于LinkedList
3. 对于插入和删除操作,LinkedList优于ArrayList
4. LinkedList比ArrayList更占内存,因为LinkedList的节点除了存储数据,还存储了两个引用,一个指向前一个元素,一个指向后一个元素。
一.在时间复杂度上的区别
假设我们有两个很大的列表,它们里面的元素已经排好序了,这两个列表分别是ArrayList类型和LinkedList类型的,现在我们对这两个列表来进行二分查找(binary search),比较它们的查找速度。
代码如下:
1 package com.demo;
2
3 import java.util.ArrayList;
4 import java.util.Collections;
5 import java.util.LinkedList;
6 import java.util.List;
7
8 public class Demo1 {
9 static List<Integer> array = new ArrayList<Integer>();
10 static List<Integer> linked = new LinkedList<Integer>();
11
12 public static void main(String[] args) {
13<