在链表末尾插入不是特例。那么阵列的结束怎么样?

时间:2016-02-24 08:25:10

标签: java arrays arraylist linked-list

所以,我正在阅读关于链表的教科书。因此,如果在链表的末尾插入某些内容并不是特殊情况,那么它是否是一种特殊情况,如果在数组的末尾插入一个元素,则会形成对比?答案背后的原因是什么?为什么?为什么在链接列表末尾插入时不是特殊情况,为什么在数组末尾不是特殊情况?那么ArrayLists呢?

2 个答案:

答案 0 :(得分:2)

这也不是-linkshared的特例(如果我们不是在谈论超出Array的界限)。但对于Array,它可能是一种特殊情况,因为ArrayList具有容量,如果超出ArrayList,则需要调整大小以确保它具有插入元素的空间。

答案 1 :(得分:1)

数组在初始化时具有固定大小(此部分很重要,因为数组元素存储在连续的内存地址中)。因此,如果不创建新数组,则无法将元素附加到数组。

int[] myArray = new int[10];
myArray.append(42); //Where should it be stored? It would not make sense.

对于列表,它取决于列表实现。 LinkedList由几个相互连接的Node组成。因此,在列表末尾添加元素相当于将新节点连接到列表的最后一个节点。