添加另一个对象时java.util.ConcurrentModificationException
发布时间:2020-05-24 17:20:18 所属栏目:Java 来源:互联网
导读:我正在遭遇这个例外.我的代码有什么问题? 我只想在另一个ArrayList中分离Person的重复名称 public class GlennTestMain{ static ArrayListPerson ps; static ArrayListPerson duplicates; public static void main(String[] args)
|
我正在遭遇这个例外.我的代码有什么问题?
public class GlennTestMain
{
static ArrayList<Person> ps;
static ArrayList<Person> duplicates;
public static void main(String[] args)
{
ps = new ArrayList<GlennTestMain.Person>();
duplicates = new ArrayList<GlennTestMain.Person>();
noDuplicate(new Person("Glenn",123));
noDuplicate(new Person("Glenn",423));
noDuplicate(new Person("Joe",1423)); // error here
System.out.println(ps.size());
System.out.println(duplicates.size());
}
public static void noDuplicate(Person p1)
{
if(ps.size() != 0)
{
for(Person p : ps)
{
if(p.name.equals(p1.name))
{
duplicates.add(p1);
}
else
{
ps.add(p1);
}
}
}
else
{
ps.add(p1);
}
}
static class Person
{
public Person(String n,int num)
{
this.name = n;
this.age = num;
}
String name;
int age;
}
}
这是堆栈跟踪 Exception in thread "main" java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(Unknown Source) at java.util.ArrayList$Itr.next(Unknown Source) at hk.com.GlennTestMain.noDuplicate(GlennTestMain.java:41) at hk.com.GlennTestMain.main(GlennTestMain.java:30) 解决方法您无法修改正在迭代的集合.这可能会抛出ConcurrentModificationException.虽然它有时会起作用,但并不能保证每次都能正常工作.如果要添加或删除列表中的内容,则需要使用Iterator或ListIterator作为列表.并使用 请参阅这些帖子以了解如何使用它: – > Java : ConcurrentModificationException while iterating over list (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
