为什么 .add(i, E) 在 Java ArrayList 中大 O(n)?

Why is .add(i, E) big O(n) in Java ArrayList?

我想知道为什么 .add(i, E)O(n).get(i)O(1)?是不是因为插入后可能 n 个元素必须向右移动?

记住大 O 表示法显示问题的数量级,而不是它的最佳案例解决方案...所以是的,移动 ArrayList 中的其他元素(由 Siddhartha 提到的数组支持)是导致它成为 O 的原因(n).