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

本文详细介绍了Java中增强for循环的使用方法及其底层原理,并通过实例展示了如何利用增强for循环进行数组和集合的操作。此外,还讲解了可变参数的概念及应用场景,帮助读者更好地理解和运用这些特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 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     }

 

转载于:https://www.cnblogs.com/jiangjunwei/p/9222145.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值