增强for循环是J2SE5.0的新特性,其语法格式是:for(type 迭代变量名:集合对象名(或
数组名)){…}
迭代变量必须在for( )的括号中定义,它代表集合或数组中的每个元素,集合必须是实现了Iterable接口的集合类 ,在增强的for循环中,我们不需要去检查数组的边界,不必担心数组下标越界, 这些都由增强的for循环替我们代劳了
例:
在J2SE5.0之前我们要求一个int数组中所有元素的和是这么写的:[code]int sum=0;
for(int i=0;数组名.length;i++)
{
sum+=数组名;
}
return sum; [/code]用增强的for功能可这样写:[code]for(int i;数组名) //迭代现在我们可以用增强的变量名可以任取
{
sum+=i;
}
return sum;[/code]在集合类得遍历上更能发挥增强for的优势
例:[code]Map<String,Integer> maps=new HashMap<String,Integer>();
maps.put("one", 1);
maps.put("two", 2);
maps.put("three",3);
Set<Map.Entry<String, Integer>>entrySet=maps.entrySet();//HashMap并未实现Iterable接口,但它有一个方法entrySet() ,返回一个对应对象 maps的 、实现Set接口类的对象,因为set接口继承了Iterable接口,所以返回的这个对象的类,必实现了Iterable接口,此时,我们就可以通过
增强for进行迭代,得出HashMap类的对象maps里面的key、value
for(Map.Entry<String, Integer> m:entrySet)
{
System.out.println(m.getKey()+"="+m.getValue());
} [/code] |