private static void printInvoice() {
for (int i = customerList.size()-1; i >= 0; i--) {
for(int n = taskChecker.size() -1; n >=0 ; i--){
System.out.println(customerList.get(i).getName());
customerList.get(i).invoiceForCustomer();
taskChecker.remove(n);
}
}
这是打印出来的内容:
Sven 9900 Task: Rosta knäck Date: 2014-02-11 Numbers of hours: 1
Tor 4950 Task: Rosta bröd Date: 2013-12-12 Numbers of hours: 1
Oden 4950 Task: Rosta bröd Date: 2013-12-12 Numbers of hours: 1
现在我想在打印完任务(Oden 4950 任务:Rosta bröd 日期:2013-12-12 小时数:1)后将其删除。我真的很困惑我应该如何做到这一点......
最佳答案
如果不使用迭代器
,则无法从当前循环的列表中删除项目。它构成了一个ConcurrentModificationException。正如对您的问题的评论所述,请使用 Iterator
对象以允许从您正在操作的列表中删除。
作为Iterator
用法的简单示例:
Iterator<Object> it = listOfObjects.iterator();
while (it.hasNext())
{
Object o = it.next();
it.remove(); <--- removes the last object returned from Iterator.next() from the underlying collection
}
关于java - 如何从arrayList中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27991807/