java之增强for循环以及几种删除集合元素的方式

 1 public class Demo1_Foreach {
 2 
 3     /*
 4      * 增强for循环格式:
 5      *     for(元素数据类型   变量  :  数组或者Collection集合){
 6      *         使用变量即可,该变量就是元素
 7      *     }
 8      * 实质:底层依赖的是迭代器
 9      */
10     public static void main(String[] args) {
11 
12         //demo1();
13         List<String> l = new ArrayList<>();
14         l.add("a");
15         l.add("b");
16         l.add("b");
17         l.add("c");
18         
19         /*
20          * 1. 普通for循环删除元素
21          *    注意:索引要减减 ( -- )
22          
23         for(int i=0; i < l.size(); i++) {
24             if ("b".equals(l.get(i))) {
25                 //l.remove(i);            //[a, b, c]
26                 l.remove(i--);            //[a, c]
27             }
28         }
29         */
30         
31         /*2.迭代器删除元素
32          * Iterator<String> it = l.iterator();
33         while (it.hasNext()) {
34             if ("b".equals(it.next())) {
35                 //l.remove("b");   //不能用集合的删除方法,在遍历的同时删除元素,否则会报并发修改异常
36                 it.remove();
37             }
38         }*/
39         
40         /*for(Iterator<String> it2 = l.iterator();it2.hasNext();) {
41             if ("b".equals(it2.next())) {
42                 //l.remove("b");   //不能用集合的删除方法,在遍历的同时删除元素,否则会报并发修改异常
43                 it2.remove();
44             }
45         }*/
46         
47         /*3.增强for循环方式删除,此方式无法删除,因为增强for循环底层依赖的是迭代器,利用集合的删除方法删除会报并发修改异常
48          * for (String string : l) {
49             if ("b".equals(string)) {
50                 l.remove("b");
51             }
52         }*/
53         System.out.println(l);
54     }
55 
56     public static void demo1() {
57         int[] arr = {11, 22, 33};
58         for (int i : arr) {
59             System.out.println(i);
60         }
61         
62         ArrayList<String> list = new ArrayList<>();
63         list.add("a");
64         list.add("b");
65         list.add("c");
66         
67         for (String string : list) {
68             System.out.println(string);
69         }
70     }
71 
72 
73 }
74 
75 ///////////////////////////////////////////////////////////////////////////
76 
77 /*
78      * 1. 概述:定义方法时,不知道该定义几个参数时可以使用可变参数
79      * 2.格式:
80      *     修饰符  返回值类型   方法名(数据类型  ... 变量名)
81      *     
82      * 3.注意事项:
83      *     这个可变参数实质就是一个数组
84      *     如果有多个参数,则可变参数必须放到最后一个
85      */
86     public static void main(String[] args) {
87 
88         int[] arr = {11, 22, 33, 44};
89         //print(arr);
90         print(11,33,44);
91     }
92 
93     /*public static void print(int[] arr) {
94         System.out.println(arr[0]);
95     }*/
96     
97     public static void print(int... arr) {
98         System.out.println(arr[0]);
99     }

猜你喜欢

转载自www.cnblogs.com/jiangjunwei/p/9222145.html