1

次のコードを使用して、配列リストのすべての要素を出力し、同時に配列から削除しようとしています。

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

配列リストのサイズが小さい場合は機能しますが、配列リストにたとえば 400000 個の要素が含まれている場合、最初の数千の後にクラッシュします。

forループを使用して各要素を出力し、arraylist = nullを設定するようにコードを変更しましたが、最初に使用したコードの何が問題なのか疑問に思っています。

乾杯

4

1 に答える 1

0

これを試して、

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());
    }

より多くの挿入操作と削除操作が必要な場合は、リンクリストを使用してください

于 2013-06-10T11:38:06.810 に答える