概述
JDK1.5引进了一种新的循环类型,即增强型for循环,可用于数组和集合
基本格式语法如下:
for(type element: arrays) { System.out.println(element); }
其中type为arrays的类型(例如String,int,double,float),element是被声明的新的局部变量,对应的是数组或集合中的每个元素值。arrays即是要访问的数组名。
增强for循环使用注意事项:
1、增强型for循环底层是使用了迭代器iterator获取的,不过获取迭代器由Java虚拟机完成,不需要我们获取迭代器,所以使用增强型for循环变量元素的过程中,不准使用集合对象对集合元素个数进行修改。
2、迭代器iterator遍历元素与增强型for变量元素区别:使用迭代器iterator遍历集合元素时可以删除集合的元素,但是增强型for循环遍历集合元素时,不能调用迭代器的remove()方法删除对应下标元素。
3、普通for循环和加强型for循环差别:普通for循环可以没有遍历目标,但加强型for循环必须要有遍历目标。
下面我们看看几个例子:
-
案例1(加强型循环的简单使用):
package com.znzz.JavaTest;
public class ForEachCycling {
public static void main(String[] args) {
// TODO Auto-generated method stub
int count=-1;
String[] arrays= {"Peter","Zack","Lisa","Lily"};
for(String element : arrays) {
count++;
System.out.println("下标"+count+"对应的是"+element);
}
}
}
对应的结果如下:
下标0对应的是Peter
下标1对应的是Zack
下标2对应的是Lisa
下标3对应的是Lily
-
案例2(普通for循环与加强型for循环的对比):
package com.znzz.JavaTest;
public class ForEachCycling {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arrays= {1,2,3,4,5,6};
//普通for循环遍历
for(int element=0;element<arrays.length;element++) {
System.out.print(arrays[element]+"t");
}
System.out.println("n");
//加强型for循环遍历
for(int element:arrays) {
System.out.print(element+"t");
}
}
}
结果如下:
1 2 3 4 5 6
1 2 3 4 5 6
-
案例3(迭代器遍历和加强for循环比较):
package com.znzz.JavaTest;
import java.util.HashSet;
import java.util.Iterator;
public class DemoTest {
public static void main(String[] args) {
HashSet<String> set= new HashSet<String>();
//为集合添加元素
set.add("Zack");
set.add("Peter");
set.add("老刘");
set.add("老张");
int count=0;
//调用迭代器iterator遍历Set的集合
Iterator<String> i=set.iterator();
//判断集合中是否有值
while(i.hasNext()) {
count++;
String element=i.next();
System.out.println("element_"+count+"是"+element);
i.remove();//每输出一个元素之后就remove掉该元素,于是后面的增强型循环无法输出值。只有将此语句注释掉,后面的增强for循环才可行
}
System.out.println("----------------------");
//采用增强型for循环遍历
for(String element:set) {
System.out.println("element_"+count+"是"+element);
}
}
}
结果如下:
element_1是老张
element_2是Zack
element_3是老刘
element_4是Peter
----------------------
Attention:
由于Map接口没有实现Iterator接口,所以Map集合不能直接使用增强型for循环。如果需要使用到for循环,则必须借助Collection的集合。
package com.znzz.JavaTest;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;
public class DemoTest {
public static void main(String[] args) {
HashMap<Integer,String> map=new HashMap<Integer,String>();
map.put(0, "刘同学");
map.put(1, "王同学");
map.put(2, "张同学");
map.put(3, "赵同学");
Set<Entry<Integer,String>> e= map.entrySet();
for(Entry<Integer,String> element:e) {
System.out.println("键:"+element.getKey()+" "+"值:"+element.getValue());
}
}
}
运行结果如下:
键:0 值:刘同学
键:1 值:王同学
键:2 值:张同学
键:3 值:赵同学
此内容结束!
最后
以上就是无私蜻蜓为你收集整理的有关增强型for循环的使用(详细)的全部内容,希望文章能够帮你解决有关增强型for循环的使用(详细)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复