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 的一个重要主题就是通过新增一些特性来简化开发,这些特性包括 ...
随机推荐
- BeanDefinition到Bean
转自:http://songzi0206.iteye.com/blog/1430239 当 BeanDefinition 注册完毕以后, Spring Bean 工厂就可以随时根据需要进行实例化了.对 ...
- LVS专题-(3) 虚拟ip理解
1.虚拟IP是什么? 要是单讲解虚拟 IP,理解起来很困难,所以干脆把 动态 IP .固定 IP .实体 IP 与虚拟 IP都讲解一下,加深理解和知识扩展 实体 IP:在网络的世界里,为了要辨识每一部 ...
- android开发学习笔记系列(4)--android动态布局
前言 在做一个有关苏果APP的项目中,但是fuck的是,我完全使用相对布局之后及线性布局之后发现坑爹的事情了,屏幕不能适配,这是多大的痛,意味着,必须使用相应的代码实现动态布局!呵呵,不做项目不知道, ...
- SpringMVC源码阅读入门
1.导入 Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就包含在Spring框架中.正式的名称“Spring Web MVC”来自于它的源模块(spring-w ...
- 第3章:Hadoop分布式文件系统(2)
数据流 读取文件数据的剖析 为了知道客户端与HDFS,NameNode,DataNode交互过程中数据的流向,请看图3-2,这张图显示了读取文件过程中主要的事件顺序. 客户端通过调用FileSyste ...
- Spring基础(8) : 延迟加载,Bean的作用域,Bean生命周期
1.延迟加载 <bean id="p" class="com.Person" lazy-init="true"/> @Confi ...
- C++虚析构函数解析
当派生类对象从内存中撤销时一般先运行派生类的析构函数,然后再调用基类的析构函数. 如果用new运算符建立的派生类的临时对象,对指向基类的指针指向这个临时对象当用delete运算符撤销对象时,系统执行的 ...
- .net Core 部署到 Linux
1.环境说明 服务器系统:CentOS 7.4 64位 相关工具:Xshel.Xftp .net Core版本:2.2 VS版本:2017 服务器软件软件:.netcore.nginx.superv ...
- Mybatis中trim标签的用法
select * from t_user <trim prefix="WHERE" prefixOverrides="and"> <if te ...
- PHP trick(代码审计关注点)
随着代码安全的普及,越来越多的开发人员知道了如何防御sqli.xss等与语言无关的漏洞,但是对于和开发语言本身相关的一些漏洞和缺陷却知之甚少,于是这些点也就是我们在Code audit的时候的重点关注 ...