如何replacejava中的ArrayList元素的现有值

我还是相当新的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而不是Tow但我得到了[Zero, One, New, Two, Three]结果,我仍然有“两个”。 我想打印[Zero, One, New, Three] 。 我该怎么做呢? 谢谢..

使用set方法replace旧值。

 list.set( 2, "New" ); 

使用ArrayList.set() : http : //docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#set%28int,%20E%29

 list.set(2, "New"); 

用Arraylist中的指定位置replace现有的元素,

 set(int index, E element) 

在你的代码块中,你正在使用list.add( 2, "New" ); 此方法将指定的元素插入此列表中的指定位置。

下面是add和set方法的区别,

java.util.ArrayList.set(int index, E element)用指定的元素replace此列表中指定位置的元素。此处int index是要replace的元素的索引,element是要在指定位置存储的元素位置。 如果索引超出范围,则会抛出IndexOutOfBoundsExceptionexception。 此方法返回之前在指定位置的元素。

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

方法将指定的元素E插入到此列表中的指定位置。它将当前位置(如果有)和任何后续元素的元素向右移(将其索引加1)。此方法不会返回任何值。如果索引超出范围,它也会抛出IndexOutOfBoundsExceptionexception。

如果您不知道要replace的位置,则使用列表迭代器来查找和replace元素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"); } } 

你必须使用list.remove(indexYouWantToReplace); 第一。

你的元素将会变成这样。 [zero,one,three]

然后添加这个list.add(indexYouWantedToReplace, newElement)

你的元素将会变成这样。 [zero, one, new, three]