关于List集合的删除问题
一般来说在遍历一个List集合的时候,是不能同时执行删除操作的。
会抛出
java.util.ConcurrentModificationException
当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常。
但是,有的时候就需要删除操作。
?
举个例子,备份用的。
?
package demo;import java.util.ArrayList;import java.util.List;public class Main {/** 目标:删除cccpppppppppppp之前的记录 */public static void main(String[] args) {List<String> list = new ArrayList<String>();list.add("aaa");list.add("bbb");list.add("111");list.add("222");list.add("333");list.add("cccpppppppppppp");list.add("999");list.add("888");list.add("777");int c_index = -1; // 保存cccpppppppppppp第一次出现的位置// 取得cccpppppppppppp第一次出现的位置for (int i = 0; i < list.size(); i++) {String str = list.get(i);if (str.startsWith("ccc")) {c_index = i;break; //不要省}}// 删除cccpppppppppppp之前的记录for (int j = list.size() - 1; j >= 0; j--) {if (j < c_index) {list.remove(j); // list.remove(list.get(j));// c_index--;}}System.out.println(list);}}
??