java中list一边循环一边遍历减少的代码
时间: 2023-08-07 21:03:46 浏览: 39
在 Java 中,使用 `Iterator` 迭代器可以实现一边循环一边遍历并删除元素的操作,具体实现如下:
```java
List<Integer> myList = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
Iterator<Integer> iterator = myList.iterator();
while (iterator.hasNext()) {
Integer num = iterator.next();
System.out.println(num);
iterator.remove();
}
```
这段代码会输出列表中的每个元素,并且在遍历过程中删除已经遍历过的元素,以实现一边循环一边遍历减少的效果。需要注意的是,在遍历过程中修改列表的长度可能会导致一些意外的行为,因此需要谨慎使用。
相关问题
java中list 如何一边遍历一边删除
在Java中,如果你要在遍历List的同时删除其中的元素,可以使用迭代器 Iterator 来实现。具体步骤如下:
1. 通过list.iterator()方法获取迭代器对象;
2. 在 while 循环中,使用 hasNext() 方法判断是否还有元素,如果有则使用 next() 方法获取当前元素;
3. 在 while 循环中,使用 Iterator 的 remove() 方法删除当前元素。
示例代码如下:
```java
List<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.add("E");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String element = iterator.next();
if (element.equals("C")) {
iterator.remove(); // 删除当前元素
}
System.out.println(element);
}
```
输出结果为:
```
A
B
D
E
```
注意:在使用迭代器删除元素时,不能直接使用list.remove()方法,否则会抛出ConcurrentModificationException异常,因为这样会导致 List 的结构发生变化,而迭代器不允许这样的操作。
Java中对list集合循环遍历
在Java中,可以使用不同的方式对List集合进行循环遍历,以下是几种常见的方法:
1. 使用普通for循环:
```java
List<Integer> myList = new ArrayList<>();
myList.add(1);
myList.add(2);
myList.add(3);
myList.add(4);
myList.add(5);
for (int i = 0; i < myList.size(); i++) {
int value = myList.get(i);
System.out.println(value);
}
```
2. 使用增强for循环(foreach循环):
```java
List<Integer> myList = new ArrayList<>();
myList.add(1);
myList.add(2);
myList.add(3);
myList.add(4);
myList.add(5);
for (int value : myList) {
System.out.println(value);
}
```
3. 使用迭代器(Iterator):
```java
List<Integer> myList = new ArrayList<>();
myList.add(1);
myList.add(2);
myList.add(3);
myList.add(4);
myList.add(5);
Iterator<Integer> iterator = myList.iterator();
while (iterator.hasNext()) {
int value = iterator.next();
System.out.println(value);
}
```
这些方法都可以用来遍历List集合中的元素,根据不同的需求选择适合的方式即可。