zoukankan      html  css  js  c++  java
  • 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     }
  • 相关阅读:
    svn常用命令
    mysql5.6 sql_mode设置
    centos6.5 mysql5.6主从复制
    linux 挂载windows共享文件夹
    hadoop+hive+hbase+zookeeper安装
    Linux踢出登陆用户的正确姿势
    个人博客项目部署到腾讯云记录(私人记录)
    Python中的单例模式的几种实现方式和优化以及pyc文件解释(转)
    关于window.location.hash的理解及其应用(转)
    Django model反向关联名称的方法(转)
  • 原文地址:https://www.cnblogs.com/jiangjunwei/p/9222145.html
Copyright © 2011-2022 走看看