ArrayList 倒序循环
时间: 2023-08-25 09:07:35 浏览: 59
要倒序遍历 ArrayList,可以使用 for 循环,从最后一个元素开始循环,直到第一个元素结束循环。可以像这样实现:
```java
ArrayList<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
for (int i = list.size() - 1; i >= 0; i--) {
String element = list.get(i);
System.out.println(element);
}
```
这会输出:
```
D
C
B
A
```
在循环时,我们从 `list.size() - 1` 开始,即最后一个元素的下标,每次递减1,直到下标为0。在循环体内,我们可以通过 `list.get(i)` 获取元素。
相关问题
arraylist for循环中删除
在使用 `ArrayList` 进行循环删除时,需要注意避免出现数组越界的情况。一种常见的做法是使用倒序循环,从最后一个元素开始遍历,这样删除元素不会影响前面元素的索引。示例代码如下:
```
ArrayList<Integer> list = new ArrayList<>();
// 添加元素
for (int i = list.size() - 1; i >= 0; i--) {
if (list.get(i) % 2 == 0) {
list.remove(i);
}
}
```
上述代码中,我们从最后一个元素开始循环,如果当前元素是偶数,则删除它。由于是倒序循环,因此删除元素不会影响前面元素的索引。
ArrayList for循环中删除
在使用 `ArrayList` 进行循环删除时,需要注意遍历过程中删除元素会导致索引错位,可以采用以下两种方法:
1. 倒序遍历,从最后一个元素开始删除:
```java
for (int i = list.size() - 1; i >= 0; i--) {
if (/* 需要删除的条件 */) {
list.remove(i);
}
}
```
2. 使用迭代器进行删除:
```java
Iterator<Integer> it = list.iterator();
while (it.hasNext()) {
int num = it.next();
if (/* 需要删除的条件 */) {
it.remove();
}
}
```
第二种方法在删除时不会导致索引错位,但是需要额外创建一个迭代器对象。