代码如下,其他代码和老师的相同 public void testRemove(Student student) { String string = "数据结构"; for (Course cr : student.courses) { if(cr.name.equals(string)) { student.courses.remove(cr)); } }我使用这个方法会报错,Exception in thread "main" java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextEntry(HashMap.java:922) at java.util.HashMap$KeyIterator.next(HashMap.java:956) at study.day1216.SetTest.testRemove(SetTest.java:60) at study.day1216.SetTest.main(SetTest.java:44)
1 回答
已采纳
sxian_wang
TA贡献16条经验 获得超8个赞
在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常。
解决办法:
使用Iterator来迭代,然后用iterator.remove();
用keySet()或entrySet(),然后得到直接得到这个对象,然后student.courses.remove();
添加回答
举报
0/150
提交
取消