java - 为什么 arraylist 循环在删除元素时崩溃

标签 java arraylist crash

我正在尝试使用以下代码打印数组列表的所有元素并同时将它们从数组中删除。

while(!duplicates.isEmpty()){
outpurWriter.println(duplicates.remove(0));
}

当数组列表尺寸较小时它可以工作,但如果数组列表包含 400000 个元素,它会在前几千个元素后崩溃。

我已经更改了代码,只使用 for 循环来打印每个元素,然后设置 arraylist = null,但只是想知道我最初使用的代码有什么问题。

干杯

最佳答案

试试这个,

public static void main(String[] args)
    {
        List<String> listString = new ArrayList<String>();
        listString.add("a");
        listString.add("b");
        listString.add("c");
        listString.add("d");

        System.out.println("Size of arraylist before remove: "+listString.size());
        ListIterator<String> listIterator = listString.listIterator();
        while (listIterator.hasNext())
        {
            listIterator.next();
            listIterator.remove();
        }
        System.out.println("Size of arraylist after remove: "+listString.size());
    }

如果您有更多插入和删除操作的需求,请使用链表

关于java - 为什么 arraylist 循环在删除元素时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17022105/

相关文章:

java - 存储 ArrayList 数据并转换为 String[][]

iphone - 8badf00d 是什么意思?

asp.net - NET 4中的随机w3wp.exe崩溃

java - 如何以百分比设置元素的宽度?

java - 将带有整数的 ArrayList 转换为 UTF-16 字符串

java - 如何将排序的Arraylist转换为BST

linux - AT&T 汇编尝试将 "movb"一个字符常量注册,核心转储

java - 如何使用 GUI 构建简单的国际象棋游戏的 UML 图?

java - 如果锁本身被争用会怎样?

java - 使用 Spring 的 Java Configuration 时如何使用 Shiro.ini 配置 Shiro?