概述
foreach循环
froeach循环是一种更加简洁的for循环,也称为增强for循环。froeach循环用于遍历数组和集合中的元素。
聚体语法如下:
for(数据类型 变量名 :遍历的目标){ //数据类型 变量名:声明一个变量用来接收遍历目标遍历后的元素
}
froeach循环不需要获取容器的长度,也不需要根据索引访问容器中的元素,但它会自动遍历容器中的每一个元素。
代码如下:
package pk_01;
import java.util.ArrayList;
public class Example03 {
public static void main(String[] args) {
ArrayList<String> list=new ArrayList<String>();
list.add("Jack");
list.add("Rose");
list.add("Tom");
for (String string : list) {
//括号内的内容可改为Object obj:list
System.out.println(string);
}
}
}
但是循环遍历集合和数组时,只能访问集合中的元素,不能对其中的元素进行修改
package pk_01;
public class Example04 {
//static String[] strs= {"aaa","bbb","ccc"};
public static void main(String[] args) {
String[] strs= {"aaa","bbb","ccc"};
for (String str : strs) {
str="ddd";
}
System.out.println("foreach循环修改后的数组:"+strs[0]+","+strs[1]+","+strs[2]);
}
}
运行结果为:foreach循环修改后的数组:aaa,bbb,ccc。
但是for循环可以做到。
----------------------------------------------------------------------------------------------------------------------------------
Iterator迭代器
在使用Iterator迭代器对集合中的元素进行迭代时,如果调用了集合对象的remove()方法去删除元素,会出现异常。
package pk_01;
import java.util.ArrayList;
import java.util.Iterator;
public class Example05 {
public static void main(String[] args) {
ArrayList<String> list=new ArrayList<String>();
list.add("Jack");
list.add("Annie");
list.add("Rose");
list.add("Tom");
Iterator<String> it=list.iterator();
while(it.hasNext()) {
Object obj=it.next();
//运行不了,因为删除后迭代次数发生改变导致迭代器的结果不准确
/*if("Annie".equals(obj)) {
list.remove(obj);
}*/
//找到人后直接跳出循环不再继续进行迭代
if("Annie".equals(obj)) {
list.remove(obj);
break;
}
//或者使用迭代器本身的删除方法
/*if("Annie".equals(obj)) {
it.remove(obj);
}*/
}
}
最后
以上就是狂野钥匙为你收集整理的foreach循环与 Iterator迭代器的全部内容,希望文章能够帮你解决foreach循环与 Iterator迭代器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复