zoukankan      html  css  js  c++  java
  • JDK5的新特性之 增强for

     

    package cn.itcast.day19.foreach;
    
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.List;
    import java.util.ListIterator;
    
    /*
     * JDK5的新特性:自动拆装箱,泛型,可变参数,增强for,静态导入,枚举
     * 
     *    增强for:是for循环的一种
     *
     *    格式:
     *        for(元素数据类型 变量:数组或者Collection集合){
     *        
     *        }
     *
     *好处:简化了数组和Collection集合的遍历
     *
     *弊端:
     *   1  增强for的目标不能为null
     *       解决:对增强for的目标先进行不为null的判断,然后再使用 
     *   2  无法在迭代过程中修改集合
     *       解决:没辙
     */
    public class ForEachDemo {
    
        
        public static void main(String[] args) {
            String[] arr1=new String[]{"林青霞","风清扬","猪八戒","沙和尚"};
            for(String s:arr1){
                System.out.println(s);
            }
            System.out.println("---------");
            
            
            
            Collection<String> arr2=new ArrayList<String>();
            arr2.add("林青霞");
            arr2.add("风清扬");
            arr2.add("猪八戒");
            arr2.add("沙和尚");
            
            for(String s:arr2){
                System.out.println(s);
            }
            System.out.println("---------");
            
            //增强for其实就是迭代器 
            //迭代器迭代集合,正在迭代的过程中,集合操作集合元素ConcurrentModificationException
    //        for(String s:arr2){
    //            if("林青霞".equals(s)){
    //                arr2.add("孙悟空");
    //            }
    //        }
            
            //列表迭代器迭代集合,迭代器修改结合
            List<String> arr3=(List<String>)arr2;
            ListIterator<String> it=arr3.listIterator();
            while(it.hasNext()){
                String s=it.next();
                if("林青霞".equals(s)){
                    it.add("周杰伦 ");
                }
            }
            System.out.println("arr3: "+arr3);
            
            System.out.println("---------");
            List<String> list=null;
            //对增强for的目标先进行不为null的判断,然后再使用 
            if(list!=null){
            //s是从list中拿出来的,在拿之前肯定会判断list是否有元素,而这时list=null,报空指针
            for(String s:list){
                System.out.println(s);
            }
            }
            
        }
    
    }
  • 相关阅读:
    Opencv 图像矩
    Opencv Convex Hull (凸包)
    Opencv 发现轮廓 findContours
    Opencv Match Template(轮廓匹配)
    python操作mysql数据库的常用方法使用详解
    mongodb数据库集群及sharding分片配置
    mongodb数据库安装及常见操作
    windows下搭建eclipse关于python的开发环境及初始化参数配置
    python环境下使用tab自动补全命令
    ubuntu系统初始化网络及mysql配置
  • 原文地址:https://www.cnblogs.com/qq-757617012/p/4283270.html
Copyright © 2011-2022 走看看