我有一個問題與刪除從ArrayList中的賦值 工作時,如果我使用了「正常」的for循環的對象,它的工作原理如下刪除ArrayList對象問題
public void returnBook(String isbn){
for (int i = 0; i < booksBorrowed.size(); i++){
if (booksBorrowed.get(i).getISBN() == isbn){
booksBorrowed.get(i).returnBook();
booksBorrowed.remove(i);
}
}
}
然而,當我試圖簡化代碼具有增強的for循環,不工作,並顯示java.util.ConcurrentModificationException錯誤:
public void returnBook(String isbn){
for (Book book: booksBorrowed){
if (book.getISBN() == isbn){
book.returnBook();
booksBorrowed.remove(book);
}
}
}
希望你們能減輕我..
如果你的問題是「爲什麼我得到一個錯誤」,它是因爲您無法從正在迭代的列表中刪除項目。如果相同的ISBN可以在列表中兩次,您的第一個循環可能會有一個錯誤。 – 2012-04-01 03:28:19