LinkedList与ArrayList的比较
这个问题在这里已经有了答案:
链接列表插入确实速度更快,问题出在您的示例中。 在你的代码中,你通过追加到所有的时间来插入。 对于ArrayList,它和LinkedList一样简单。 你应该做的是建立一个说5000个项目的清单,然后开始插入中间。 这里array变慢 - 你必须在插入位置之后将整个数组的其余部分全部移位。 这是什么将显示差异。 分析事情的工作原理,不难理解为什么。 这是修改的代码:
import java.util.Date;
    import java.util.LinkedList;
    import java.util.ArrayList;
    import java.util.List;
    public class Prob {
        public static void main(String[] args) {
            long lStartTime = new Date().getTime();
            System.out.println("lStartTime:: " + lStartTime);
            List<Integer> integerList = new LinkedList<Integer>();
            for (int i = 0; i < 5000; i++) {
                integerList.add(0, i);
            }
            for (int i = 0; i < 100000; i++) {
                integerList.add(1000, i);
            }
            long lEndTime = new Date().getTime();
            System.out.println("lEndTime:: " + lEndTime);
            long difference = lEndTime - lStartTime;
            System.out.println("Elapsed milliseconds: " + difference);
        }
}
  LinkedList在插入时不比ArrayList快。  ArrayList由数组支持,因此插入元素很简单。  插入LinkedList需要创建一个新的Entry实例,该实例较慢。 
  插入到ArrayList的唯一时间可能会比较慢,因为插入导致ArrayList容量增加,这需要创建一个新数组并将旧数组复制到它。 
