1 public class Test { 2 public static void main(String[] args) { 3 List<String> list = new ArrayList<>(); 4 list.add("张三"); 5 list.add("张三"); 6 list.add("李四"); 7 list.add("李四"); 8 list.add("王武"); 9 list.add("王武"); 10 list.add("赵六"); 11 list.add("赵六"); 12 list.add("侯柒"); 13 list.add("侯柒"); 14 System.out.println(list); 15 16 System.out.println("========迭代器删除王武========="); 17 // 迭代器删除王武 用迭代器可以删除,不能用集合来删除(报错) 18 Iterator<String> iterator = list.iterator(); 19 while (iterator.hasNext()){ 20 String next = iterator.next(); 21 if ("王武".equals(next)){ 22 // list.remove("王武"); 23 iterator.remove(); 24 } 25 } 26 System.out.println(list); 27 System.out.println("========foreach遍历删除赵六========="); 28 29 // foreach 遍历删除 30 // for (String s : list){ // forEach报bug 31 // if ("赵六".equals(s)){ 32 // list.remove("赵六"); 33 // } 34 // } 35 System.out.println(list); 36 37 // lambda 表达式 会报错 38 // System.out.println("========lambda 表达式删除李四========="); 39 // list.forEach( s -> { 40 // if ("李四".equals(s)){ 41 // list.remove("李四"); 42 // } 43 // }); 44 45 // for循环删除张三 不报错但数据会漏删,解决方案:倒删或下标 i-- 46 System.out.println("========for循环删除张三========="); 47 for (int i = 0; i < list.size(); i++) { 48 String s = list.get(i); 49 if ("张三".equals(s)){ 50 list.remove("张三"); 51 i--; 52 } 53 } 54 System.out.println(list); 55 56 System.out.println("========for循环倒着删除侯柒========="); 57 for (int i = list.size() - 1; i >= 0; i--) { 58 String s = list.get(i); 59 if ("侯柒".equals(s)){ 60 list.remove("侯柒"); 61 } 62 } 63 System.out.println(list); 64 } 65 }
标签:遍历,删除,list,System,println,add,集合,out From: https://www.cnblogs.com/dsds/p/17983676