这个异常是说,你不能在对一个List进行遍历的时候将其中的元素删除掉- ArrayList<String> list = new ArrayList<String>();
- list.add("123");
- list.add("456");
- list.add("789");
- list.add("963");
- int i=0;
- for ( String st : list) {
-
- if (st.equals("123")) { //你这个循环是在遍历list集合,但是遍历过程中又要删除里面的元素,所以就报错了
-
- list.remove(st);
- }
- System.out.println(list.get(i)+ " ");
- i++;
复制代码 你可以定义一个集合来收集要删除的字符串,等遍历完后再进行删除- ArrayList<String> list = new ArrayList<String>();
- ArrayList<String> Dellist = new ArrayList<String>();//在这里定义个集合,用于收集你要删除的元素,等遍历结束后再对收集的元素删除
- list.add("123");
- list.add("456");
- list.add("789");
- list.add("963");
-
- int i = 0;
-
- for ( String st : list) {
-
- if (st.equals("123")) {
- Dellist.add(st);
- i++;
- }
- }
- list.removeAll(Dellist); //这里用removeAll,是因为不确定要删除的集合里的元素有多少个!
- System.out.println(list.get(i)+ " ");
复制代码 |