对于大小为"M“的数组:如果我想在N个位置移除元素,那么我可以使用索引一次直接移到Nth位置(我不需要遍历直到Nth索引),然后我可以删除该元素,直到此时复杂度为O(1),那么我将不得不移动其余的元素( can移位),因此我的复杂度将是线性的,即O(M-N+1)。因此,删除或插入在最后将给我最好的表现(如N~ M),删除或插入在开始将是最差的(如N~ 1)。
现在大小为"M“的LinkedList :如果您已经有了对要在时间复杂性之后插入或删除的节点的引用,则为O(1)。如果不能直接到达LinkedList中的Nth元素,则必须遍历N个元素才能访问Nth元素,因此LinkedList中的搜索比ArrayList的代价更高。