使用INDEX删除ArrayList中的元素导致java.util.ConcurrentModificationException

时间:2016-09-27 06:01:18

标签: java arraylist

以下代码导致

  

java.util.ConcurrentModificationException

我不确定如何解决错误请帮忙!

ArrayList strList =  new ArrayList<String>(Arrays.asList(cmd.split(" ")));

        if (strList.get(0).equals("LIST")) {

        }

        if (strList.get(0).equals("DEPEND")) {
            strList.remove(0); // getting error at this point 
            cm.createComponent(strList);

        }

完整方法外部循环与列表

无关
public static void main(String[] args) throws IOException {
        ComponentManager cm = new ComponentManager();

    List<String> lines = Files.readAllLines(Paths.get("cmdList.txt"));
    for (String cmd : lines) {
        ArrayList strList =  new ArrayList<String>(Arrays.asList(cmd.split(" ")));

        if (strList.get(0).equals("LIST")) {

        }

        if (strList.get(0).equals("DEPEND")) {
            strList.remove(0);
            cm.createComponent(strList);

        }

        if (strList.get(0).equals("INSTALL")) {

        }

        if (strList.get(0).equals("REMOVE")) {

        }

    }

}

1 个答案:

答案 0 :(得分:1)

您可以创建一个不同的ArrayList并在那里执行remove操作或在arrayList上放置一个迭代器并使用迭代器删除。

为您的问题herehere找到几种可能的解决方案。