这是我在重新编程时经常遇到的错误。此异常的原因或细节非常清楚。不允许在迭代时修改集合(正在添加新元素)。至少
for不支持语法。
为了解决您的问题,我认为有两种方法很简单。
1)。而不是使用
for语句来循环,更好的方法是使用迭代器来避免ConcurrentModificationException。
Iterator<Book> iterator = bookList.iterator(); while(iterator.hasNext()){ Book c = iterator.next(); if(c.getBookName().startsWith(name)){ jsonObjec=new JSonObject(); jsonObjec.put("label",c.getBookName()); jsonObjec.put("value", c.getId()); jsonArr.add(jsonObjec); } }2)。在循环播放时,请勿添加。
List list = new ArrayList<>(); for(Book c:GlobalObjects.bookList){ if(c.getBookName().startsWith(name)){ jsonObjec=new JSonObject(); jsonObjec.put("label",c.getBookName()); jsonObjec.put("value", c.getId()); list.add(jsonObjec);//java.util.ConcurrentModificationException } } jsonArr.addAll(list);


