首页 > 解决方案 > 使用迭代器从 ArrayList 中删除元素

问题描述

我已经使用迭代器从 Arraylist 中删除了元素。但是在删除大小后不会减小,并且 Arraylist 中的值保持不变。我使用 ArrayList 作为类级变量。不知道为什么它不起作用。下面是我的代码,

public class MyClass{
private ArrayList<String> valueArrayList;
Iterator itr = valueArrayList.iterator();
                while (itr.hasNext())
                    if (validateFile((String) itr.next())) {

                        Log.d(LOG_TAG, "values removed");

                    } else
                        itr.remove();
}

标签: javaandroidarraylistiterator

解决方案


应该是

Iterator<String> itr = valueArrayList.iterator();
while (itr.hasNext()) {
    // If file doesn't exist
    if (!validateFile(itr.next())) {
        itr.remove(); // delete from list
        Log.d(LOG_TAG, "values removed");
    }
}

推荐阅读