方式一:使用Iterator的remove()方法
1public class Test { 2 public static void main(String[] args) { 3 List<String> list = new ArrayList<>(); 4 list.add("aa"); 5 list.add("bb"); 6 list.add("cc"); 7 Iterator<String> it = list.iterator(); 8 while(it.hasNext()){ 9 String str = (String)it.next(); 10 if("aa".equals(str)){ 11 it.remove(); 12 } 13 } 14 System.out.println(list.size()); 15 } 16}
方式二:使用List的remove()方法,注意list.size()的位置
1public class Test { 2 public static void main(String[] args) { 3 List<String> list = new ArrayList<>(); 4 list.add("aa"); 5 list.add("bb"); 6 list.add("cc"); 7 for (int i = list.size() - 1; i >= 0; i--) { 8 String str = list.get(i); 9 if ("aa".equals(str)) { 10 list.remove(str); 11 } 12 } 13 System.out.println(list.size()); 14 } 15}
方式三:使用CopyOnWriteArrayList
1public class Test { 2 public static void main(String[] args) { 3 List<String> list = new ArrayList<>(); 4 list.add("aa"); 5 list.add("bb"); 6 list.add("cc"); 7 CopyOnWriteArrayList<String> cowList = new CopyOnWriteArrayList<String>(list); 8 for (String str : cowList) { 9 if ("aa".equals(str)) { 10 cowList.remove(str); 11 } 12 } 13 System.out.println(cowList.size()); 14 } 15}