Looking for java Keywords? Try Ask4Keywords

Java Language Замена на месте элемента списка


пример

Этот пример касается замены элемента List , гарантируя, что элемент замены находится в том же положении, что и заменяемый элемент.

Это можно сделать, используя следующие методы:

  • set (индекс int, тип T)
  • int indexOf (тип T)

Рассмотрим ArrayList содержащий элементы «Начало программы!», «Привет, мир!». и "Прощай мир!"

List<String> strings = new ArrayList<String>();
strings.add("Program starting!");
strings.add("Hello world!");
strings.add("Goodbye world!");

Если нам известен индекс элемента, который мы хотим заменить, мы можем просто использовать set следующим образом:

strings.set(1, "Hi world");

Если мы не знаем индекс, мы можем сначала его найти. Например:

int pos = strings.indexOf("Goodbye world!");
if (pos >= 0) {
    strings.set(pos, "Goodbye cruel world!");
}

Заметки:

  1. Операция set не вызовет ConcurrentModificationException .
  2. Операция set выполняется быстро ( O(1) ) для ArrayList но медленная ( O(N) ) для LinkedList .
  3. Поиск indexOf в ArrayList или LinkedList медленный ( O(N) ).