gpt4 book ai didi

java - 打印 vector 内容时出现 ConcurrentModificationException

转载 作者:行者123 更新时间:2023-12-05 00:13:39 24 4
gpt4 key购买 nike

好的,所以我想编写一个程序,允许用户输入无限数量的数字,然后它们将再次以相同的顺序打印。

我收到此错误:

Exception in thread "main" java.util.ConcurrentModificationException
at java.util.Vector$Itr.checkForComodification(Unknown Source)
at java.util.Vector$Itr.next(Unknown Source)
at myPackage.Main.main(Main.java:41)

第 41 行是这一行“System.out.println(itr.next());”一个

这是我的代码:

package myPackage;

import java.util.Scanner;
import java.util.Vector;
import java.lang.Integer;
import java.util.Iterator;

public class Main {

private static Scanner user_input;

public static void main(String[] args) {

int first = 42;
int second = 84;

user_input = new Scanner(System.in);

Vector<Integer> v = new Vector<Integer>();

Iterator<Integer> itr = v.iterator();

System.out.println("Please enter the numbers you wish to store temporarily before printing. When finished, enter either 42 or 84");

int userInt = user_input.nextInt();

while(user_input.equals(first) == false && user_input.equals(second) == false){

userInt = user_input.nextInt();
if(userInt == 42 || userInt == 84){
break;
}
else{
v.add(userInt);
}
}

System.out.println("Iterating through Vector elements...");

while(itr.hasNext()){
System.out.println(itr.next());
}

System.out.println("The program has terminated");
}
}

我搞砸了迭代器吗?提前致谢!

最佳答案

在向 Vector 添加任何内容之前,您过早地创建了迭代器。移动这一行:

Iterator<Integer> itr = v.iterator();

在最后一个while循环中使用它之前:

Iterator<Integer> itr = v.iterator();
while(itr.hasNext()){

...在你修改完Vector之后。

您看到 ConcurrentModificationException 的原因是您在 Iterator 存在时修改了 Vector

关于java - 打印 vector 内容时出现 ConcurrentModificationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17197960/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com