Скажем, есть список чисел. В чем разница между добавлением add(int index, Object x)
и установка объекта в список set(int index, Object x)
. Разве они не делают то же самое? Не обе функции просто добавляют Object x
к указанному индексу?
Из документации http://docs.oracle.com/javase/7/docs/api/java/util/List.html
add (int index, E element) Вставляет указанный элемент в указанную позицию в этом списке (дополнительная операция).
set (int index, E element) Заменяет элемент в указанной позиции в этом списке указанным элементом (необязательная операция).
Так нет. Они не делают то же самое. add
добавляет. set
заменяет существующий элемент.
Если нет элемента a, индекс, set вернет ошибку:
IndexOutOfBoundsException - если индекс вне диапазона (индекс <0 || index> = size())
Вы могли бы попробовать их обоих:
try
{
list.set(index, obj);
}
catch(IndexOutOfBoundsException ex)
{
list.add(index, obj);
}
Попробуйте установить, и если он вернет эту конкретную ошибку, добавьте вместо этого.
Установите переопределенное значение в позиции index
, добавьте расширения в массив (старые значения остаются) и добавьте новое значение в позицию index
.