列出LinkedList ArrayList

时间:2017-05-24 03:18:22

标签: java list arraylist linked-list

List arrayList = new ArrayList();
List linkedList = new LinkedList();

arrayList = linkedList;

arrayListArrayList的一个实例。 linkedListLinkedList的一个实例。因此,如果将linkedList分配给arrayList,它应该会出错,但为什么不呢?

2 个答案:

答案 0 :(得分:1)

arrayList变量。它被声明为List类型的变量,这意味着它可以成为对实现List任何类型的任何对象的引用。分配给它的第一件事是ArrayList,这并不重要;您可以稍后重新分配任何其他对象引用,只要它实现List

有助于保持术语的正确性。您的问题似乎是讨论将一个对象分配给另一个对象,或者将一个列表分配给另一个列表,但是& #39;不是发生了什么。您将对象(实际上是对象的引用)分配给变量。当您为变量赋值时,先前在变量中的值对赋值没有影响。

答案 1 :(得分:0)

ArrayList是List类型对象,LinkedList也是List类型对象(继承)。这就是为什么将一个分配到另一个工作没有问题。

更具体地说,List是一个接口,由AbstractList类型对象实现,而AbstractList类型对象又是ArrayLists的基础。

您可以在黑线后看到here