• 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);
            }
            }
            
        }
    
    }
  • 相关阅读:
    打印二叉树和为某一值的路径
    顺时针打印数组
    算术表达式
    堆内存与栈内存详解
    【腾讯校招在线考试附加题】将一个10进制数转换为四位定长的36进制数
    反转链表
    记录github出错及解决方案
    centos7操作防火墙
    无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]解决方法
    MyBatis联表查询——别名方式
  • 原文地址:https://www.cnblogs.com/qq-757617012/p/4283270.html
Copyright © 2020-2023  润新知