JDK5新特性--forEach循环
2016-10-16 15:15
375 查看
1.增强for循环概述
简化数组和Collection集合的遍历
2.格式
3.增强for循环的好处:简化了数组和集合的遍历。
4.注意事项:增强for的目标要判断是否为null
判断目标为空的代码
at cn.ArrayListDemo.main(ArrayListDemo.java:16)
所以为了避免这种错误,请你使用增强for循环的时候还是先判断目标吧。
5.forEach循环其实底层就是迭代器
哈哈,不信,看下面代码
呵呵
java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901)
at java.util.ArrayList$Itr.next(ArrayList.java:851)
at cn.ArrayListDemo.main(ArrayListDemo.java:15)
这个异常是不是很熟悉,哈哈,就是迭代器迭代集合时修改集合的元素时出现的异常。
简化数组和Collection集合的遍历
2.格式
for(元素数据类型 变量:数组或者Collection集合){ 使用变量集合,该变量就是元素 }
package cn; public class ForDemo { public static void main(String[] args) { int[] arr = {1,2,3,4,5}; for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } System.out.println("-------------"); for(int i : arr){ System.out.println(i); } } }
package cn; public class ForDemo2 { public static void main(String[] args) { String[] strs = new String[]{"观音姐姐","如来叔叔","玉帝哥哥","悟空第第"}; for(String str :strs){ System.out.println(str); } } }
package cn; import java.util.ArrayList; public class ArrayListDemo { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); list.add("哈哈"); list.add("呵呵"); list.add("嘻嘻"); list.add("笨笨"); for(String str :list){ System.out.println(str); } } }
3.增强for循环的好处:简化了数组和集合的遍历。
4.注意事项:增强for的目标要判断是否为null
判断目标为空的代码
package cn; import java.util.ArrayList; public class ArrayListDemo { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); list.add("哈哈"); list.add("呵呵"); list.add("嘻嘻"); list.add("笨笨"); list = null; for(String str :list){ System.out.println(str); } } }Exception in thread "main" java.lang.NullPointerException
at cn.ArrayListDemo.main(ArrayListDemo.java:16)
所以为了避免这种错误,请你使用增强for循环的时候还是先判断目标吧。
package cn; import java.util.ArrayList; public class ArrayListDemo { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); list.add("哈哈"); list.add("呵呵"); list.add("嘻嘻"); list.add("笨笨"); if(null != list){ for(String str :list){ System.out.println(str); } } } }
5.forEach循环其实底层就是迭代器
哈哈,不信,看下面代码
package cn; import java.util.ArrayList; public class ArrayListDemo { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); list.add("哈哈"); list.add("呵呵"); list.add("嘻嘻"); list.add("笨笨"); if(null != list){ for(String str :list){ if(str.equals("呵呵")){ list.add("哦哦"); } System.out.println(str); } } } }Exception in thread "main" 哈哈
呵呵
java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901)
at java.util.ArrayList$Itr.next(ArrayList.java:851)
at cn.ArrayListDemo.main(ArrayListDemo.java:15)
这个异常是不是很熟悉,哈哈,就是迭代器迭代集合时修改集合的元素时出现的异常。
相关文章推荐
- jdk1.8 新特性之 forEach 循环遍历
- 20-常用对象API(集合框架-JDK5.0特性-ForEach循环) 21-常用对象API(集合框架-JDK5.0特性-函数可变参数). 1 2
- jdk1.8 新特性之 forEach 循环遍历
- 19-集合框架工具类-20-常用对象API(集合框架-JDK5.0特性-ForEach循环)
- 2012.12.7 smarty中section和foreach循环区别
- 新特性:可变参数和foreach
- 编写高质量代码改善C#程序的157个建议:第17个建议之多数情况下使用foreach进行循环遍历
- C#中循环语句:while、for、foreach的使用
- java关于for,foreach,iterator循环ArrayList的方式测试
- PHP中foreach循环中使用引用要注意的地方
- 建议17:多数情况下使用foreach进行循环遍历
- GO语言基础-for语句特性,字符串循环的一个小问题
- JDK5新特性_通过enum实现枚举类
- 可变长度参数以及foreach循环原理
- java中的foreach循环
- JDK5新特性之线程同步集合(五)
- 编写高质量代码改善C#程序的157个建议——建议17:多数情况下使用foreach进行循环遍历
- foreach循环中删除一个列表中的元素报错
- 条款11:优先采用foreach循环语句
- List三种循环方式,for,foreach,迭代器方式打印总结