Добавление объекта в список

1

Скажем, есть список чисел. В чем разница между добавлением add(int index, Object x)

и установка объекта в список set(int index, Object x). Разве они не делают то же самое? Не обе функции просто добавляют Object x к указанному индексу?

Теги:

3 ответа

3
Лучший ответ

set заменяет, add толкает все после индекса обратно индекс.

  • 0
    Просто и понятно, поэтому размер массива увеличивается при использовании add, а set сохраняет размер неизменным. Я должен был знать, еще раз спасибо.
1

Из документации 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);
}

Попробуйте установить, и если он вернет эту конкретную ошибку, добавьте вместо этого.

1

Установите переопределенное значение в позиции index, добавьте расширения в массив (старые значения остаются) и добавьте новое значение в позицию index.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню