所以,我正在阅读关于链表的教科书。因此,如果在链表的末尾插入某些内容并不是特殊情况,那么它是否是一种特殊情况,如果在数组的末尾插入一个元素,则会形成对比?答案背后的原因是什么?为什么?为什么在链接列表末尾插入时不是特殊情况,为什么在数组末尾不是特殊情况?那么ArrayLists呢?
答案 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
组成。因此,在列表末尾添加元素相当于将新节点连接到列表的最后一个节点。