增强for循环是jdk1.5出现的新功能
1、增强for循环的作用
简化了迭代器的书写格式(注意:增强for循环底层还是使用了迭代器遍历)文章地址https://www.yii666.com/article/758294.html文章来源地址:https://www.yii666.com/article/758294.html
2、增强for循环的格式
for(数据类型 变量名:遍历的目标){ }
3、增强for循环的适用范围
如果实现了 Iterable 接口或者数组对象都可以使用增强for循环网址:yii666.com
package com.dhb.pattern; import java.util.Iterator; /**
* @author DSHORE / 2018-6-8
*
*/
class MyList implements Iterable<String>{
Object[] arr=new Object[];
int index=;//当前指针
public void add(Object o){
arr[index++]=o;
}
public Iterator<String> iterator() { return new Iterator<String>() {//new Iterator<String>():匿名内部类 Iterator接口,抽象的不能直接new
int cursor=;//指针
//hasNext()、next()、remove()都是实现new Iterator<String>()中的方法
public boolean hasNext() {
return cursor<index;
}
public String next() { return (String)arr[cursor++];
}
public void remove() { }
};//结束匿名内部类的符号“;”
}
}
public class Demo2 {
public static void main(String[] args) {
MyList list=new MyList();
list.add("张三");
list.add("李四");
list.add("王五");
list.add("赵六");
for (String string : list) {
System.out.print(string+",");//返回结果:张三,李四,王五,赵六,
}
}
}
4、增强for循环需要注意的事项
1、增强for循环底层也是使用迭代器获取的,只不过获取迭代器是由jvm完成,不需要我们获取迭代器,索引在使用增强for循环遍历元素的过程中,不准使用集合对对象 对集合元素经行修改
2、迭代器遍历元素和增强for循环的区别:使用迭代器遍历元素时可以删除集合元素,而增强for循环遍历集合元素时,不能调用迭代器里面的remove方法删除元素
3、普通for循环与增强for循环的区别:普通for循环可以没有变量目标,而增强for循环一定要有变量目标
5、实例
package com.dhb.pattern; import java.util.HashSet;
/**
* @author DSHORE / 2018-6-8
*
*/
public class Demo3 {
public static void main(String[] args) {
//集合
HashSet<String> set=new HashSet<String>();
set.add("狗剩");
set.add("铁蛋");
set.add("哮天神犬"); Iterator<String> it=set.iterator(); //使用迭代器遍历set集合
while(it.hasNext()){
System.out.println(it.next());
} for(String s:set){//使用增强for循环遍历
System.out.println(s);
} //数组
int[] arr={,,,};
for (int i = ; i < arr.length; i++) {//普通for循环遍历
System.out.println(arr[i]);
}
for (int i : arr) {//增强for循环遍历
System.out.println(i);
}
}
}
原创作者:DSHORE 作者主页:http://www.cnblogs.com/dshore123/ 原文出自:https://www.cnblogs.com/dshore123/p/9156896.html 欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!) |