这是因为执行后您继续遍历该列表
remove()。
您正在同时读取和写入列表,这破坏了foreach循环下面的迭代器协定。
用 Iterator.remove()
for(Iterator<Student> iter = students.iterator(); iter.hasNext(); ) { Student student = iter.next(); if(studentName.equalsIgnoreCase(student.getName()) { iter.remove(); }}描述如下:
返回迭代中的下一个元素。
NoSuchElementException如果迭代没有更多元素,则抛出该异常。
您可以
Iterator.hasNext()用来检查下一个元素是否可用。



