写一段代码在遍历 ArrayList 时移除一个元素
时间: 2023-06-10 20:04:11 浏览: 185
当你在遍历 ArrayList 时,不能直接删除元素,因为这会导致 ConcurrentModificationException(同时修改异常)。要安全地删除 ArrayList 中的元素,可以使用 Iterator 对象并调用它的 remove() 方法。
下面是一个示例代码:
```
Iterator<String> iter = arrayList.iterator();
while (iter.hasNext()) {
String str = iter.next();
if (str.equals("要删除的元素")) {
iter.remove();
}
}
```
在这个例子中,我们首先创建了一个 Iterator 对象,然后使用 while 循环遍历 ArrayList 中的元素。在循环的每一次迭代中,我们使用 next() 方法获取下一个元素并将其存储在 str 变量中。如果这个元素是我们要删除的元素,我们就调用 Iterator 的 remove() 方法删除该元素。删除操作不会影响其他正在进行的迭代,因此这是一个安全的方法。
相关问题
写一段代码遍历ArrayList移除
在遍历 ArrayList 移除元素时,需要注意的是不能直接调用 remove 方法,因为这会导致遍历过程中的迭代器失效,从而导致抛出 ConcurrentModificationException 异常。正确的做法是使用迭代器的 remove 方法,在遍历过程中移除元素。以下是示例代码:
```
ArrayList<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");
Iterator<String> iterator = list.iterator();
while(iterator.hasNext()) {
String str = iterator.next();
if(str.equals("Java")) {
iterator.remove();
}
}
System.out.println(list);
```
这段代码遍历 ArrayList 中的元素,如果元素等于 "Java",就使用迭代器的 remove 方法移除该元素。最后输出移除后的 ArrayList。
写一段代码,遍历ArrayLit 时移除一个元素
假设我们要移除的元素是 `target`,可以使用 `Iterator` 对 `ArrayList` 进行遍历,并在遍历过程中使用 `remove` 方法移除目标元素:
```java
ArrayList<Integer> arrayList = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
int target = 3;
Iterator<Integer> iterator = arrayList.iterator();
while (iterator.hasNext()) {
int element = iterator.next();
if (element == target) {
iterator.remove();
}
}
System.out.println(arrayList);
```
输出结果为:`[1, 2, 4, 5]`,可以看到元素 3 已被移除。需要注意的是,在遍历过程中使用 `remove` 方法会导致 `ConcurrentModificationException` 异常,因此必须使用 `Iterator` 的 `remove` 方法来进行元素移除操作。
阅读全文