Java 增强型的for循环 for each
2016-06-06 16:48
351 查看
For-Each循环
For-Each循环也叫增强型的for循环,或者叫foreach循环。For-Each循环是JDK5.0的新特性(其他新特性比如泛型、自动装箱等)。
For-Each循环的加入简化了集合的遍历。
其语法如下:
for(type element: array)
{
System.out.println(element);
}
for (循环变量类型 循环变量名称 : 要被遍历的对象)
{
循环体
}
例子
其基本使用可以直接看代码:代码中首先对比了两种for循环;之后实现了用增强for循环遍历二维数组;最后采用三种方式遍历了一个List集合。
import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ForeachTest { public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5}; System.out.println("----------旧方式遍历------------"); //旧式方式 for(int i=0; i<arr.length; i++) { System.out.println(arr[i]); } System.out.println("---------新方式遍历-------------"); //新式写法,增强的for循环 for(int element:arr) { System.out.println(element); } System.out.println("---------遍历二维数组-------------"); //遍历二维数组 int[][] arr2 = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}} ; for(int[] row : arr2) { for(int element : row) { System.out.println(element); } } //以三种方式遍历集合List List<String> list = new ArrayList<String>(); list.add("a"); list.add("b"); list.add("c"); System.out.println("----------方式1-----------"); //第一种方式,普通for循环 for(int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } System.out.println("----------方式2-----------"); //第二种方式,使用迭代器 for(Iterator<String> iter = list.iterator(); iter.hasNext();) { System.out.println(iter.next()); } System.out.println("----------方式3-----------"); //第三种方式,使用增强型的for循环 for(String str: list) { System.out.println(str); } } }
For-Each循环的缺点:丢掉了索引信息。
当遍历集合或数组时,如果需要访问集合或数组的下标,那么最好使用旧式的方式来实现循环或遍历,而不要使用增强的for循环,因为它丢失了下标信息。
相关文章推荐
- java.lang.ClassLoader与java.net.URLClassLoader学习
- Java 设计模式——状态模式
- Java 设计模式——状态模式
- eclipse package,source folder,folder区别及相互转换
- spring定时任务执行两次
- 老外总结的关于Spring Bean Life Cycle 的文档
- JAVA 中File mkdir()与mkdirs()
- Ehcache系列三:Spring Cache 介绍
- [置顶] java动态代理
- 报表开发导出各种格式文件的API
- Ehcache系列二:Spring缓存注解@Cache使用
- 应用于负载均衡的一致性哈希及java实现
- java代码启动jetty
- Quartz 在 Spring 中如何动态配置时间(转)
- Android之eclipse 新版NDK环境搭建(免Cygwin,超级快)-可用
- java replace 双引号到单引号
- 最大熵的Java实现
- 解决eclipse中MAVEN项目提示One or more constraints have not been satisfied
- serverlet 分文件处理
- java计算时间差