java.util.ConcurrentModificationException

遇到过这样的一个错误。发生于对list遍历中,给list进行删除的情况中。

    for (int i = 0; i < FieldsList.size(); i++)
        {
             String field = FieldsList.get(i);
             if(field.toLowerCase().contains(tmptableName.toLowerCase())){
                 if(startIndex != BeginIndex){
                     FieldsList.remove(field);
                 }
                 
             }
        } 

解决方法,将要删除的元素用一个List存起来,然后再求两个list的差集。

             List<String> FieldsListRemove = new ArrayList<>();
 
             for(String field : FieldsList)
             {
                 System.out.println(field);
                 
                 if(field.toLowerCase().contains(tmptableName.toLowerCase())){
                     if(startIndex != BeginIndex){
                         FieldsListRemove.add(field);
                     }
                   
                 }
             } 
             FieldsList.removeAll(FieldsListRemove);
原文地址:https://www.cnblogs.com/sunxun/p/5681359.html