关于ArrayList的文档不清楚

Cra*_*lus 5 java collections list arraylist

对于我来说,ArrayList文档的以下部分似乎不正确:

size,isEmpty,get,set,iterator和listIterator操作以恒定时间运行.

现在set定义为:

set(int index,E element)
用指定的元素替换此列表中指定位置的元素.

因此,这可以用于在ArrayList的中间添加一个元素,并导致其余元素移位.
但这被认为是线性操作而不是恒定的.

我错了吗?还是我想念一些东西?

Sav*_*era 9

这是一个集合操作,而不是添加.它只是替换了数组的第i个条目.


Tud*_*dor 5

ArrayList.set将替换索引处的元素,而不是插入索引处.这就像说:

array[i] = something;
Run Code Online (Sandbox Code Playgroud)

持续运作.