Possible Duplicate:
When to use LinkedList<> over ArrayList<>?
我看到了 ArrayList 和 LinkedList 的 API,它们似乎是一样的。除了它们的性能差异外,在添加、删除和迭代列表方面也有任何差异。
List arrList = new ArrayList();
List linList = new LinkedList();
List arrList 或 linList
引用实际上是在实现相应的类。这到底是什么意思?
就您的第一个问题而言:它们的性能和内存使用情况是您唯一关心的区别(第三个问题,它们的实际实现细节,不是您关心的问题。)LinkedList
s 使用更多内存,并且通过从头部遍历列表来获取第 22 个元素非常慢;但就在列表中间添加和删除元素而言,它们非常棒。 ArrayList
使用的内存较少,获取第 22 个元素的速度非常快——但在中间插入或删除一个元素所花费的时间与列表的大小成正比。
至于你的第二个问题:引用是“实际执行列表”的说法是错误的,所以我真的不知道如何回答。引用变量指的是一个实现了List
接口(interface)的对象;这两个类都实现了该接口(interface),因此 List
类型的引用可以引用任一类的对象。