Tôi có một vấn đề với xóa một đối tượng từ ArrayList khi làm việc trên sự phân công Nếu tôi sử dụng "bình thường" cho vòng lặp, nó hoạt động như sauLoại bỏ ArrayList vấn đề đối tượng
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);
}
}
}
Tuy nhiên, khi tôi cố gắng để đơn giản hóa mã với tăng cường cho vòng lặp, điều đó không làm việc và hiển thị java.util.ConcurrentModificationException lỗi:
public void returnBook(String isbn){
for (Book book: booksBorrowed){
if (book.getISBN() == isbn){
book.returnBook();
booksBorrowed.remove(book);
}
}
}
Hy vọng các bạn có thể làm sáng tôi dậy ..
Nếu câu hỏi của bạn là "Tại sao tôi lại nhận được một lỗi" đó là vì bạn không thể xóa các mục khỏi danh sách bạn đang lặp lại. Và vòng lặp đầu tiên của bạn có thể có lỗi trong đó, nếu cùng một ISBN có thể nằm trong danh sách hai lần. –