java - 如何从arrayList中删除元素

标签 java arraylist element

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/

相关文章:

java - JSON解析-获取值

java - String#replaceAll() 替换 *除 =* 组之外的任何内容

java - Scala while 循环赋值

java - 使用 Java 流检查 ArrayList 内容

java - 如何解决IndexOutOfBoundsException : Invalid index 1,大小为1?

javascript - document.querySelector 在一个元素中包含多个数据属性

元素的 c# LINQ to XML 查询表达式是否存在?

java - 如何使用简单的适配器和 ListView 创建自己的自定义行布局

java - ArrayList.contains() 未正确注册某些值

list - 如何使用列表删除函数中的重复元素?