Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 列表LinkedList ArrayList_Java_List_Arraylist_Linked List - Fatal编程技术网

Java 列表LinkedList ArrayList

Java 列表LinkedList ArrayList,java,list,arraylist,linked-list,Java,List,Arraylist,Linked List,arrayList是arrayList的一个实例linkedList是linkedList的一个实例。因此,如果将linkedList分配给arrayList,它应该会出错,但为什么不会呢?arrayList是列表类型对象,linkedList也是列表类型对象(继承)。这就是为什么将一个任务分配给另一个任务没有问题 更具体地说,List是一个接口,由AbstractList类型的对象实现,而AbstractList类型的对象又是ArrayList的基础 您可以看到,在黑线后面。arrayList

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

arrayList是列表类型对象,linkedList也是列表类型对象(继承)。这就是为什么将一个任务分配给另一个任务没有问题

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


您可以看到,在黑线后面。

arrayList是一个变量。它被声明为
List
类型的变量,这意味着它可以成为对实现
List
的任何类型的任何对象的引用。您首先分配给它的是
ArrayList
,这并不重要;您可以在以后将任何其他对象引用重新指定给它,只要它实现了
List


这有助于保持术语的直截了当。您的问题似乎是将一个对象分配给另一个对象,或将一个列表分配给另一个列表,但实际情况并非如此。将对象(实际上是对象的引用)指定给变量。当您为变量赋值时,先前在变量中的值对赋值没有影响。

这两个变量的引用类型都是列表。这样做很好。@AlexQuilliam不确定从哪里获得
Integer
。@AlexQuilliam不,你不会的。你有没有试过OP发布的代码?是的。没有编译时或运行时错误。我正在执行
ArrayList ArrayList
。这就是为什么会有例外。
List arrayList = new ArrayList();
List linkedList = new LinkedList();

arrayList = linkedList;