Java list循环add后一位覆盖前一位
时间: 2023-08-05 07:23:06 浏览: 80
如果在Java中,你循环遍历一个List,并且在循环中使用add()方法添加元素,它可能会导致后一位覆盖前一位的问题。这是因为在使用add()方法添加元素时,List的大小会动态变化,而循环遍历时使用的索引值可能会失效。
为了避免这个问题,你可以使用ListIterator迭代器来遍历List,并使用add()方法添加元素。ListIterator迭代器提供了add()方法,该方法可以在迭代过程中安全地添加元素。示例如下:
```
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
ListIterator<String> iterator = list.listIterator();
while (iterator.hasNext()) {
String element = iterator.next();
if (element.equals("B")) {
iterator.add("D"); // 在B后面添加元素D
}
}
```
在这个例子中,我们使用ListIterator迭代器遍历List,并在当前元素为B时,在它后面添加了一个元素D。这样,就可以避免后一位覆盖前一位的问题。
需要注意的是,如果你使用普通的for循环遍历List,并且在循环中使用add()方法添加元素,可能会导致ConcurrentModificationException异常,因为List的大小发生了改变。如果你需要在循环中添加元素,应该使用ListIterator迭代器。
阅读全文