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

为什么.add(i,E)在JavaArrayList中是大O(n)?,java,big-o,time-complexity,Java,Big O,Time Complexity,我想知道为什么当时,add(I,E)是O(n)。get(I)是O(1)?这是因为插入后必须将潜在的n元素移到右侧吗?记住,大O符号表示问题的数量级,而不是最佳解决方案。。。因此,是的,移动ArrayList中的其他元素(由Siddhartha提到的数组支持)是导致它成为O(n)的原因。假设您谈论的是ArrayList,是的,添加需要它移动元素(它由数组内部支持),因此它是O(n)。

我想知道为什么当
时,add(I,E)
O(n)
。get(I)是
O(1)
?这是因为插入后必须将潜在的
n
元素移到右侧吗?

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

假设您谈论的是
ArrayList,是的,添加需要它移动元素(它由数组内部支持),因此它是O(n)。