Я по-прежнему новичок в программировании на 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" );
Ответ 2
Используйте ArrayList.set(): http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#set%28int,%20E%29
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]