遍历删除集合元素

 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 }

 

posted @ 2024-01-23 23:34  小※兽  阅读(16)  评论(0)    收藏  举报