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

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

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

    [格式] for(元素的类型 变量名 : 数组或Collection集合名){ //此处使用变量名即可,该变量就是普通for里的i. }

  2. Javaweb学习笔记——(七)——————myexlipse基本使用、jdk5.0新特性及反射讲解

    1.debug调试模式: *使用这种模式,调试程序(看到程序运行停止在这一行) -显示出来行号 -双击左边,出现一个圆点,表示设置了一个断点 *使用debug as方式,运行程序 -特使是否进入到调试 ...

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

    day07总结 今日内容 MyEclipse安装与使用 JUnit使用 泛型 1.5新特性 自动装箱拆箱 增强for 静态导入 可变参数方法 枚举 反射 MyEclipse安装与使用(yes) 安装M ...

  4. Java JDK5.0新特性

    JDK5.0新特性 虽然JDK已经到了1.8 但是1.5(5.0)的变化是最大的 1. 增强for循环 foreach语句 foreach简化了迭代器 作用: 对存储对象的容器进行迭代 (数组, co ...

  5. JavaSE 学习笔记之Jdk5.0新特性(十九)

    Jdk5.0新特性: Collection在jdk1.5以后,有了一个父接口Iterable,这个接口的出现的将iterator方法进行抽取,提高了扩展性. --------------------- ...

  6. Java基础和JDK5.0新特性

    Java基础 JDK5.0新特性 PS: JDK:Java Development KitsJRE: Java Runtime EvironmentJRE = JVM + ClassLibary JV ...

  7. JDK5的新特性:泛型、可变参数、静态导入

    数组可以在创建的时候就指定存放的数据类型,这样放入不同类型的时候就会发生编译错误. 而集合却可以存储多种不同类型,这样的话如果是遍历的时候在集合中装了好多不同的数据类型的时候,十分容易发生类型转换错误 ...

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

    /*jdk1.5新特性之----增强for循环:底层是一个迭代器 作用:简化迭代器书写格式 使用范围:实现了Iterable接口的对象或者数组对象 格式:    for(变量类型  变量名 :遍历目标 ...

  9. JDK5.0新特性 (Day_07)

      JDK5.0新特性   目录 静态导入 自动装箱/拆箱 for-each循环 可变参数 枚举 JDK 5.0 新特性简介 JDK 5.0 的一个重要主题就是通过新增一些特性来简化开发,这些特性包括 ...

随机推荐

  1. Java 容器源码分析之集合类详解

    集合类说明及区别 Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap └W ...

  2. laravel 单词

    return view('admin.user.login'); 返回 admin文件夹下, user文件夹中 login文件模板 setcookie 语法 setcookie(name,value, ...

  3. ASP.NET MVC显示异常信息

    开发ASP.NET多了,它的异常信息显示也习惯了.但在ASP.NET MVC中,却是另外一番情形. 以前只习惯使用IE浏览器,现在开发ASP.NET MVC程序,为了捕获到异常信息,Firefox的f ...

  4. 用MVC5+EF6+WebApi 做一个小功能(二) 项目需求整理

    在一个项目开始前,需求整理大概要占到整个项目周期15%甚至30%的比重,可以说需求理得越清楚,后续开发中返工几率越小.在一个项目中,开发新功能的花费的精力要远远小于修改功能的精力,这基本是一个共识.老 ...

  5. UML,构件图与部署图

    一.构件图概述 1.概念 用来显示一组构件之间的组织及其依赖关系 2.基本元素 (1)构件:定义了良好接口的物理实现单元. ● 配置构件:形成可执行文件的基础,如:动态链接库(DLL).ActiveX ...

  6. js 时间格式与时间戳的相互转换示例代码

    一.时间转换时间戳 function transdate(endTime){ var date=new Date(); date.setFullYear(endTime.substring(0,4)) ...

  7. Java多线程--锁的优化

    Java多线程--锁的优化 提高锁的性能 减少锁的持有时间 一个线程如果持有锁太长时间,其他线程就必须等待相应的时间,如果有多个线程都在等待该资源,整体性能必然下降.所有有必要减少单个线程持有锁的时间 ...

  8. AutoMapper在项目中的应用

    一.先说说DTO DTO是个什么东东? DTO(Data Transfer Object)就是数据传输对象,说白了就是一个对象,只不过里边全是数据而已. 为什么要用DTO? 1.DTO更注重数据,对领 ...

  9. 【Mybatis】XML配置实现增删改查

    ①创建数据库和表,数据库为mytest,表为users CREATE DATABASE mytest; USE mytest; DROP TABLE IF EXISTS users; CREATE T ...

  10. layui 三级菜单

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...