1、测试代码如下:
public class StrTest { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); list.add("A"); list.add("B"); list.add("C"); list.add("D"); for (String item : list) { if ("B".equals(item)){ list.remove(item); } } System.out.println(list.size()); } }
输出:
原因:
解决办法:
public class StrTest { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); list.add("A"); list.add("B"); list.add("C"); list.add("D"); System.out.println("当前长度:" + list.size()); Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { String item = iterator.next(); if ("B".equals(item)) { iterator.remove(); } } System.out.println("删除后长度:" + list.size()); } }
输出: