• 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);
            }
            }
            
        }
    
    }
  • 相关阅读:
    (转)Lucene.net搜索结果排序(单条件和多条件)
    .Net去html标签
    (转)Lucene.Net多字段查询,多索引查询
    HttpUtility
    内存卡问题汇总
    我的NHibernate
    (转)lucene.net和(pangu)盘古分词 搜索引擎的简单实现
    Power Designer使用技巧
    Oracle添加修改删除表字段
    在数据库开发过程中,数据库、表、字段、视图、存储过程等的命名规则
  • 原文地址:https://www.cnblogs.com/qq-757617012/p/4283270.html
Copyright © 2020-2023  润新知