ArrayList 和 LinkedList 之间的性能差异
是的,这是一个古老的话题,但我仍然有一些困惑。
在Java中,人们说:
ArrayList比LinkedList更快,如果我随机访问它的元素。我认为随机访问意味着“给我第n个元素”。为什么 ArrayList 更快?
-
LinkedList 的删除速度比 ArrayList 快。我理解这个。ArrayList 的速度较慢,因为需要重新分配内部备份数组。代码说明:
List<String> list = new ArrayList<String>(); list.add("a"); list.add("b"); list.add("c"); list.remove("b"); System.out.println(list.get(1)); //output "c"
LinkedList的插入速度比ArrayList更快。插入在这里意味着什么?如果这意味着将一些元素移回,然后将元素放在中间的空点,ArrayList应该比LinkedList慢。如果插入仅意味着添加(对象)操作,这怎么会很慢?