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);
        }
        }

    }

}

时间: 2024-09-30 06:54:57

JDK5的新特性之 增强for的相关文章

JDK5的新特性之增强for循环遍历数组或集合

[格式] 1 for(元素的类型 变量名 : 数组或Collection集合名){ 2 //此处使用变量名即可,该变量就是普通for里的i. 3 } 原文地址:https://www.cnblogs.com/schiller-hu/p/8451854.html

Day07 jdk5.0新特性&Junit&反射

day07总结 今日内容 MyEclipse安装与使用 JUnit使用 泛型 1.5新特性 自动装箱拆箱 增强for 静态导入 可变参数方法 枚举 反射 MyEclipse安装与使用(yes) 安装MyEclipse 先安装了JDK ? MyEclipse介绍 ? MyEclipse是Eclipse的一个插件: MyEclipse是需要花钱的: MyEclipse官网不在欢迎中国人登录: ? MyEclipse使用 ? 1 创建项目 选择工作空间: 工作空间路径不能有空格和中文: 工作空间以班名

day07 MyEclipse 安装 jdk5.0 新特性

1.myeclipse的安装和使用 * eclipse:是一个免费的开发工具    * myeclipse:是一个收费的插件,破解myeclipse,        ** 安装目录的要求: 不能有中文和空格        ** 安装完成之后,选择一个工作空间 ,这个工作空间不能有中文和空格    * 破解myeclipse        ** 运行run.bat文件,但是运行之前,必须要安装jdk,通过配置环境变量 * myeclipse的使用        * 创建一个工程          

Java JDK5.0新特性

JDK5.0新特性 虽然JDK已经到了1.8 但是1.5(5.0)的变化是最大的 1. 增强for循环 foreach语句 foreach简化了迭代器 作用: 对存储对象的容器进行迭代 (数组, collection, map) 1> 格式 增强for循环括号里写两个参数 第一个是声明一个变量 第二个就是需要迭代的容器 for( 元素类型 变量名 : Collection集合 & 数组 ) { ... } 2> 增强for循环和传统for循环的区别 a. 增强for循环在使用时 必须要

Java SE 6 新特性: HTTP 增强--转

概述 Java 语言从诞生的那天起,就非常注重网络编程方面的应用.随着互联网应用的飞速发展,Java 的基础类库也不断地对网络相关的 API 进行加强和扩展.在 Java SE 6 当中,围绕着 HTTP 协议出现了很多实用的新特性:NTLM 认证提供了一种 Window 平台下较为安全的认证机制:JDK 当中提供了一个轻量级的 HTTP 服务器:提供了较为完善的 HTTP Cookie 管理功能:更为实用的 NetworkInterface:DNS 域名的国际化支持等等. NTLM 认证 不可

59. jdk1.5新特性之----增强for循环

/*jdk1.5新特性之----增强for循环:底层是一个迭代器 作用:简化迭代器书写格式 使用范围:实现了Iterable接口的对象或者数组对象 格式:    for(变量类型  变量名 :遍历目标){        //代码块    }    注意:    1.因为for in循环底层还是迭代器,所以在循环的时候我们不能修改迭代对象的长度    2.因为我们没有实例化迭代器对象,所以我们不能使用迭代器中的一些方法*/ 基本运用实例代码: public class Demo2 { public

JDK5.0新特性

JDK5中新增了很多新的java特性,利用这些新语法可以帮助开发人员编写出更加高效.清晰,安全的代码. 这些新特性主要有:1.静态导入2.自动装箱/拆箱3.增强for循环4.可变参数5.枚举6.泛型7.元数据 1.静态导入静态导入用于简化程序对静态属性和方法的调用 语法:Import static 包名.类名.静态属性|静态方法|*例如: import static java.lang.System.out import static java.lang.Math.* 2.自动装箱/拆箱自动装箱

三、Spring Framework 4.0的新特性和增强

Spring框架于2004年首次发布,此后出现了重大的重大修改:Spring 2.0提供了XML名称空间和AspectJ支持;Spring 2.5采用了注解驱动的配置,Spring 3.0在框架代码库中引入了强大的Java 5+基础,以及诸如基于Java的@configuration模型之类的特性. 版本4.0是Spring框架的最新主要版本,也是第一个完全支持Java 8特性的版本,您仍然可以使用Spring的旧版本的Java,然而,现在已经将最低要求提高到Java SE 6,我们还利用了一个

JDK5.0新特性-增强for循环

============== 增强for循环 它的底层实现就是使用Iterator. 什么样的容器可以使用增强for?-----------Iterable 增强for的缺点:只能进行遍历,不能进行在遍历过程中的操作. 增强for的格式 for(类型 引用:容器){ } -------------------------------------------- 关于对集合的遍历. List 1.Iterator 2.增强for 3.普通for 4.ListIterator Set 1.增强for