java5.0中增强的for/in循环
来源:互联网 发布:社交网络的坏处 编辑:程序博客网 时间:2024/06/05 12:44
看书的时候看到这个知识点,想了解详细点所以就在一些博客上看到了这方面的资料,找到了两篇觉得写得不错了,那篇短一点的我直接转载过来了,长的我就粘贴个地址吧,方便更全面的了解这个知识点http://blog.csdn.net/hanxs/article/details/3850142
以前写遍历是:
//遍历数组for(int i = 0; i < array.length; i ++) ...{ int n = array[i]; //do something}//遍历集合for(Interator iter = list.iterator(); iter.hasNext(); ) ...{ Object o = iter.next(); //do something}现在使用增强型的:
//遍历数组://以前我们这样写:void someFunction () ...{ int[] array = ...{1,2,5,8,9}; int total = 0; for (int i = 0; i < array.length; i++) ...{ total += array[i]; } System.out.println(total);}//现在我们只需这样写(和以上写法是等价的):void someFunction () ...{ int[] array = ...{1,2,5,8,9}; int total = 0; for (int n : array) ...{ total += n; } System.out.println(total);}
这种写法的缺点:
显而易见,for/in(for each)循环自动控制一次遍历数组中的每一个元素,然后将它赋值给一个临时变量(如上述代码中的int n),然后在循环体中可直接对此临时变量进行操作。这种循环的缺点是:
1. 只能顺次遍历所有元素,无法实现较为复杂的循环,如在某些条件下需要后退到之前遍历过的某个元素;
2. 循环变量(i)不可见,如想知道当前遍历到数组的第几个元素。
遍历集合:
//以前我们这样写:void someFunction () ...{ List list = new ArrayList(); list.add("Hello "); list.add("Java "); list.add("World!"); String s = ""; for (Iterator iter = list.iterator(); iter.hasNext();) ...{ String temp= (String) iter.next(); s += temp; } System.out.println(s);}//现在我们这样写:void someFunction () ...{ List list = new ArrayList(); list.add("Hello "); list.add("Java "); list.add("World!"); String s = ""; for (Object o : list) ...{ String temp = (String) o; s += temp; } System.out.println(s);}// 如果结合“泛型”,那么写法会更简单,如下:void someFunction () ...{ List<String> list = new ArrayList<String>(); list.add("Hello "); list.add("Java "); list.add("World!"); String s = ""; for (String temp : list) ...{ s += temp; //省去了对强制类型转换步骤 } System.out.println(s);}//上述代码会被编译器转化为:void someFunction () ...{ List<String> list = new ArrayList<String>(); list.add("Hello "); list.add("Java "); list.add("World!"); String s = ""; for (Iterator<String> iter = list.iterator(); iter.hasNext(); ) ...{ String temp = iter.next(); s += temp; } System.out.println(s);}
这种写法的缺点:
虽然对集合进行的for/in操作会被编译器转化为Iterator操作,但是使用for/in时,Iterator是不可见的,所以如果需要调用Iterator.remove()方法,或其他一些操作, for/in循环就有些力不从心了。
- java5.0中增强的for/in循环
- 用for-in 在Java5.0中增强循环
- Java5 增强的for循环
- Java5.0新特性03-增强for循环
- java5的for循环
- Java 5 中增强的for循环——for/in (for each)
- Java 5 中增强的for循环——for/in (for each)
- Java 5.0 中增强的for循环——for/in (for each)
- Java 5 中增强的for循环——for/in (for each)
- java5的静态导入与自动装箱拆箱,增强for循环
- 06.java语言基础-java5对数组的支持-增强for循环
- Java 5.0 中增强的for循环
- java中增强for循环的原理
- java中增强for循环的原理
- [收藏]用 for/in 在 Java 5.0 中增强循环
- 用 for/in 在 Java 5.0 中增强循环
- 用 for/in 在 Java 5.0 中增强循环
- 用 for/in 在 Java 5.0 中增强循环
- Sarov zones(SGU171,排序+模拟,)
- Android之Fragment实现TabHost
- CodeForces 333A Secrets
- 内存管理单元mmu
- 批处理创建和修改环境变量
- java5.0中增强的for/in循环
- 小Q系列故事——大笨钟
- Minimal Coverage(ural1303,区间贪心)
- HTTP消息头
- New Year Bonus Grant(SGU195,贪心or区间DP)
- 手工打造可执行程序
- Discrete Function(timus1010,暴力)
- 【rmzt】黄昏少女&&失忆win7主题_8.18
- 文件拖拽效果----C++实现