在您发布的代码中,发生了以下三种情况之一。
如果 initialCapacity>0 , elementData = new Object[initialCapacity];
initialCapacity>0
elementData = new Object[initialCapacity];
如果 initialCapacity==0 , elementData = EMPTY_ELEMENTDATA;
initialCapacity==0
elementData = EMPTY_ELEMENTDATA;
如果 initialCapacity<0 ,抛出一个例外。
initialCapacity<0
除了1号之外,所有这些操作都需要 的 恒定时间 强> ,因为不需要对集合进行迭代。
数字1需要线性时间,因为声明了一个大小的数组 n 花费O(n)时间。我不会重写整个理由,因为有一篇关于SO的文章覆盖了这个地方。一般的想法:这是因为必须为每个人分配空间 n 项目。
n
我希望得到帮助。 :)
它是线性的,因为数组声明是O(n),如本问题所示: Java:声明一个大小为n的数组的大时间是什么?