Как заменить существующее значение элемента ArrayList в java

Я по-прежнему новичок в программировании на Java, и я пытаюсь обновить существующее значение списка массивов, используя этот код

public static void main(String[] args){

    List<String> list = new ArrayList<String>();

    list.add( "Zero" );
    list.add( "One" );
    list.add( "Two" );
    list.add( "Three" );


    list.add( 2, "New" ); // add at 2nd index


    System.out.println(list);}

Я хочу напечатать New вместо Two, но я получил [Zero, One, New, Two, Three] в результате, у меня все еще есть "Два". Я хочу напечатать [Zero, One, New, Three]. Как мне это сделать? Спасибо.

Ответ 1

Используйте метод set для замены старого значения на новый.

list.set( 2, "New" );

Ответ 3

Чтобы заменить существующий элемент в указанной позиции в Arraylist, используйте метод

set(int index, E element)

в вашем кодовом блоке, который вы используете list.add( 2, "New" ); Этот метод вставляет указанный элемент в указанную позицию в этом списке.

Ниже приведены несколько различий между методом add и set,

java.util.ArrayList.set(int index, E element) заменяет элемент в указанной позиции в этом списке указанным элементом. int int - индекс элемента для замены, а element - элемент, который должен храниться в указанной позиции. Если индекс выходит за пределы допустимого диапазона, он будет генерировать исключение IndexOutOfBoundsException. Этот метод возвращает элемент ранее в указанной позиции.

java.util.ArrayList.add(int index,E element)

метод вставляет указанный элемент E в указанную позицию в этом списке. Он сдвигает элемент, находящийся в данный момент в этой позиции (если есть), и любые последующие элементы справа (добавят один к их индексам). Этот метод не возвращает любое значение. И он также выкинет исключение IndexOutOfBoundsException, если индекс вне диапазона.

Ответ 4

Если вы не знаете позицию для замены, используйте итератор списка, чтобы найти и заменить элемент ListIterator.set(E e)

ListIterator<String> iterator = list.listIterator();
while (iterator.hasNext()) {
     String next = iterator.next();
     if (next.equals("Two")) {
         //Replace element
         iterator.set("New");
     }
 }

Ответ 5

U сначала должен использовать list.remove(indexYouWantToReplace);.

Ваши элементы станут такими. [zero,one,three]

затем добавьте это list.add(indexYouWantedToReplace, newElement)

Ваши элементы станут такими. [zero, one, new, three]