public void searchOwner(List<Appointments> appts, String owner) {
Appointments theOne = null;
for (Appointments temp : appts) {
if (owner.equalsIgnoreCase(temp.owner.name)) {
System.out.println(temp.data);
temp.setResolved(true);
}
}
}
public void checkRemoval() {
for (Appointments appts : appointments) {
if (appts.resolved == true) {
appointments.remove(appts);
}
//Iterator method used before enhanced for-loop
public void checkRemovalI(){
Iterator<Appointments> it = appointments.iterator();
while(it.hasNext()){
if(it.next().resolved = true){
it.remove();
}
}
}
到目前爲止,這是我遇到我的問題的地方。我正在嘗試檢查約會的arrayList並查看該字段(已解決)是否設置爲true,但在嘗試將resolve =設置爲true時,我在searchOwner方法期間收到ConcurrentModification異常。我已經嘗試在checkRemoval中使用Iterator,而不是增強的for-loop,但是這也沒有幫助。我真的只需要將約會設置爲true的那部分工作,checkRemoval似乎在實現布爾解析更改之前提前工作。任何幫助將不勝感激,謝謝。從集合中刪除項目/對象的更改字段
你可以使用迭代器發佈代碼 –
我認爲你的問題不是使用resolve = true的設置,而是使用checkRemoval方法。循環播放時無法修改列表。要麼將原始列表的副本放到其他列表中,並從那裏開始工作 – vikeng21