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);
}
} } }
JDK5的新特性之 增强for的更多相关文章
- JDK5的新特性之增强for循环遍历数组或集合
[格式] for(元素的类型 变量名 : 数组或Collection集合名){ //此处使用变量名即可,该变量就是普通for里的i. }
- Javaweb学习笔记——(七)——————myexlipse基本使用、jdk5.0新特性及反射讲解
1.debug调试模式: *使用这种模式,调试程序(看到程序运行停止在这一行) -显示出来行号 -双击左边,出现一个圆点,表示设置了一个断点 *使用debug as方式,运行程序 -特使是否进入到调试 ...
- Day07 jdk5.0新特性&Junit&反射
day07总结 今日内容 MyEclipse安装与使用 JUnit使用 泛型 1.5新特性 自动装箱拆箱 增强for 静态导入 可变参数方法 枚举 反射 MyEclipse安装与使用(yes) 安装M ...
- Java JDK5.0新特性
JDK5.0新特性 虽然JDK已经到了1.8 但是1.5(5.0)的变化是最大的 1. 增强for循环 foreach语句 foreach简化了迭代器 作用: 对存储对象的容器进行迭代 (数组, co ...
- JavaSE 学习笔记之Jdk5.0新特性(十九)
Jdk5.0新特性: Collection在jdk1.5以后,有了一个父接口Iterable,这个接口的出现的将iterator方法进行抽取,提高了扩展性. --------------------- ...
- Java基础和JDK5.0新特性
Java基础 JDK5.0新特性 PS: JDK:Java Development KitsJRE: Java Runtime EvironmentJRE = JVM + ClassLibary JV ...
- JDK5的新特性:泛型、可变参数、静态导入
数组可以在创建的时候就指定存放的数据类型,这样放入不同类型的时候就会发生编译错误. 而集合却可以存储多种不同类型,这样的话如果是遍历的时候在集合中装了好多不同的数据类型的时候,十分容易发生类型转换错误 ...
- 59. jdk1.5新特性之----增强for循环
/*jdk1.5新特性之----增强for循环:底层是一个迭代器 作用:简化迭代器书写格式 使用范围:实现了Iterable接口的对象或者数组对象 格式: for(变量类型 变量名 :遍历目标 ...
- JDK5.0新特性 (Day_07)
JDK5.0新特性 目录 静态导入 自动装箱/拆箱 for-each循环 可变参数 枚举 JDK 5.0 新特性简介 JDK 5.0 的一个重要主题就是通过新增一些特性来简化开发,这些特性包括 ...
随机推荐
- Golang 函数function
函数function Go函数不支持嵌套.重载和默认参数 但支持以下特性: 无需声明原型 不定长度变参 多返回值 命名返回值参数 匿名函数 闭包 定义函数使用关键字func,且左大括号不能另起一行 函 ...
- 阿里巴巴java手册示例
package com.led.daorumysql; /** * @Description:alibaba java development manual * @author 86157 * */ ...
- Docker配置阿里云加速地址
首先需要注册一个阿里云账号,只要注册账号就可以,不用充钱购买任何阿里云服务! 打开阿里云网站https://cr.console.aliyun.com,登陆自己的阿里云账号. 然后只需要在服务器配置d ...
- ABP的依赖注入
目录 说说ABP的依赖注入 代码追踪 说说ABP的依赖注入 上篇abp运行机制分析分析了ABP在启动时,都做了那些事:这篇我们来说说ABP的最核心的一部分:依赖注入(DependencyInjecti ...
- 关于eclipse的项目前有感叹号和errors exist in required project相关问题
一般来说 项目运行中 各个类的信息中并没有报错 但在运行中会出现errors exist in required project 且有时候运行也会成功.这种情况是由于项目中其他的类存在问题未解决 导 ...
- Java 内部类、静态内部类、匿名内部类
java提高篇(八)----详解内部类 概念 可以将一个类的定义放在另一个类的定义内部,这就是内部类. 为什么要使用内部类?在<Think in java>中有这样一句话:使用内部类最吸引 ...
- 在Linux上实现SVN用户密码自助修改
1.首先本文是在一篇百度经验的基础上修改而成,将网址记录上,以示尊重. https://jingyan.baidu.com/article/48b37f8dd4bbb31a646488c2.html ...
- 把多个js函数绑定到onload时间处理函数上
js的window.onload=function();网页加载完毕时会触发一个onload事件,这个事件与window对象相关联,是让一个函数在网页加载完毕之后得到执行.但是如果有两个韩式first ...
- 【 js 基础 】为什么 call 比 apply 快?
这是一个非常有意思的问题. 在看源码的过程中,总会遇到这样的写法: var triggerEvents = function(events, args) { var ev, i = -1, l = e ...
- JavaScript弹出窗口方法
本文实例汇总了常用的JavaScript弹出窗口方法,供大家对比参考,希望能对大家有所帮助.详细方法如下: 1.无提示刷新网页: 大家有没有发现,有些网页,刷新的时候,会弹出一个提示窗口,点“确定”才 ...