Tag: 双向链表

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慢。 如果插入只意味着添加(对象)操作,那么这怎么会慢呢?