你什么时候会使用java.util.LinkedList
  可能重复: 
  何时通过ArrayList <>使用LinkedList <>? 
这是一个真正的尝试,知道什么时候会使用LinkedList;
据我所知,因为java.util.LinkedList不支持随机访问,所以获得第n个元素的唯一方法是从1跳到(n-1)或使用get(n),这本身效率非常低。 那么为什么会使用LinkedList呢? 除非你想用ListIterator从两边迭代集合,否则一个ArrayList可以用于大多数情况?
想想这个方法:
List list = // choose your list here
list.add(0, new Object());
  对于大型列表, LinkedList将严重超出ArrayList 。  这同样适用 
list.remove(0);
  ...和许多其他方法。  有关更多信息,我建议阅读关于java.util.Deque接口,该接口也由LinkedList实现 
在这些数据结构上考虑3种常见操作符:随机元素访问,添加元素和删除元素。
在LinkedList中,您的随机元素访问速度很慢(O(N)),但添加和删除速度很快(O(1)。对于ArrayList,反之亦然:随机元素访问速度很快(O(N)),并删除元素更慢。
您需要查看您的系统将执行哪些操作并使用适当的数据结构。
  对于任意索引的插入/删除, LinkedList更适合(与ArrayList相比)。  在从ArrayList插入或删除时,必须移动内部数组。  对于LinkedList ,它只是简单地重新指定节点的指针。 
