gpt4 book ai didi

Java:修改ArrayList时出现并发修改异常

转载 作者:行者123 更新时间:2023-12-01 07:13:45 26 4
gpt4 key购买 nike

所以我正在编写一个程序来跟踪各种文档,例如电子邮件、备忘录和报告。默认情况下,文档存储在名为“active”的 ArrayList 中,但用户可以选择使用识别码(“docId”)将它们传输到另一个名为“archive”的 ArrayList。

我认为这非常简单,但我遇到了这个错误,非常感谢您帮助解决它。这是我的代码:

private static ArrayList active = new ArrayList();
private static ArrayList archive = new ArrayList();

public static void archiveDocument(double docId)
{
if(active.isEmpty() == true)
{
System.out.println(Messages.emptyList());
}
else
{
for(Object a : active)
{
Document doc = (Document) a;

if(doc.getIdNum() == docId)
{
archive.add(a);
active.remove(a);

System.out.printf(Messages.enteredIntoArchive(), doc.getIdNum());
}
else System.out.println(Messages.notFound());
}
}
}

最佳答案

如果要在迭代期间删除,请使用显式迭代器:

Iterator i = active.iterator();
while (i.hasNext()) {
Document doc = (Document) i.next();
if (doc.getIdNum() == docId) {
archive.add(doc);
i.remove();
System.out.printf(Messages.enteredIntoArchive(), doc.getIdNum());
}
else
System.out.println(Messages.notFound());
}

关于Java:修改ArrayList时出现并发修改异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8304422/

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