【数据结构与算法分析-java】之ArrayList与LinkedList的区别
List ADT有两种流行的实现方式。
1.ArrayList类提供了List ADT的一种可增长数组的实现。使用ArrayList的有点在于,对get和set的调用花费常数时间。其缺点是新项的插入和现有项的删除代价昂贵,除非变动是在ArrayList的末端是在ArrayList的末端运行。
2.LinkedList类则提供了List ADT的双链表实现。使用LinkedList的优点在于,新项的插入和现有项的删除均开销很小,这里假设变动项的位置是已知的。
解释下数组类型和双链表的区别
a.数组

b.双链表

import java.util.* ;public class ListDemo01{public static void main(String args[]){List<Integer> li = new LinkedList<Integer>() ;for(int i=0;i<1000000;i++){li.add(i) ;}long startTime = System.currentTimeMillis() ;for(int i=0;i<10000;i++){if(li.get(i)%2==0){li.remove(i) ;}}long endTime = System.currentTimeMillis() ;System.out.println(endTime-startTime) ;}}