增强for循环
来源:互联网 发布:mac charles 简书 编辑:程序博客网 时间:2024/05/17 07:40
for/in循环就是JDK5.0中所谓的增强For循环,它能对数组和集合进行遍历,使用它会使用你的代码短小而精炼的多。这里将介绍以下内容: 传统的for循环和增强for循环的比较 定制自己的增强for循环 增强for循环的局限性 一:传统的for循环和增强for循环的比较 Java代码 //传统的数组遍历 String[] persons={"张三","李四","王五"}; for(int i=0;i persons=new ArrayList(); persons.add("张三"); persons.add("李四"); persons.add("王五"); for(Iterator i=persons.iterator();i.hasNext();){ String person=i.next(); System.out.println(person); } //使用增强For循环遍历集合 List persons=new ArrayList(); persons.add("张三"); persons.add("李四"); persons.add("王五"); for(String person:persons){ System.out.println(person); } //传统的数组遍历String[] persons={"张三","李四","王五"};for(int i=0;i persons=new ArrayList();persons.add("张三");persons.add("李四");persons.add("王五");for(Iterator i=persons.iterator();i.hasNext();){String person=i.next();System.out.println(person);}//使用增强For循环遍历集合List persons=new ArrayList();persons.add("张三");persons.add("李四");persons.add("王五");for(String person:persons){System.out.println(person);}可以看到使用增强for循环使得代码变得短小而精炼的多,如果你觉得这点变化还体现不出来,可以忍受,那你可以试试嵌套for循环,就会感觉到增强for循环的好处了,这里就不贴代码了。 二:定制自己的增强for循环 众所周知,增强for循环是按数组或者集合的内在顺序输出的,如果我们想在遍历的时候定制行为怎么做呢?下面就以一个逆序输出的例子说明怎么定制自己的增强for循环。 要想使用增强for循环,必须实现Iterable接口。 Java代码 import java.util.Iterator; /** * 一个简单的逆序输出增强for循环 * @author 飞雪无情 * */ public class ReverIterableClass implements Iterable { protected T[] elements; public ReverIterableClass(T... elems) { this.elements=elems; //this.object=(T[])new Object[ts.length]; } public Iterator iterator() { return new Iterator(){ private int current=elements.length-1; public boolean hasNext() { return current>-1; } public T next() { return elements[current--]; } public void remove() { throw new UnsupportedOperationException("目前不支持删除操作"); } }; } public static void main(String[] args){ ReverIterableClass iterableClass=new ReverIterableClass("a","b","c","d"); for(String s:iterableClass){ System.out.println(s); } } } import java.util.Iterator;/** * 一个简单的逆序输出增强for循环 * @author 飞雪无情 * */public class ReverIterableClass implements Iterable {protected T[] elements;public ReverIterableClass(T... elems) {this.elements=elems;//this.object=(T[])new Object[ts.length];}public Iterator iterator() {return new Iterator(){private int current=elements.length-1;public boolean hasNext() {return current>-1;}public T next() {return elements[current--];}public void remove() {throw new UnsupportedOperationException("目前不支持删除操作");}};}public static void main(String[] args){ReverIterableClass iterableClass=new ReverIterableClass("a","b","c","d");for(String s:iterableClass){System.out.println(s);}}}在这个程序里我们定制了自己的输出行为--逆序输出,当然你也可以定义属于你自己的,只需要在next()函数里写处理代码即可。 三:增强for循环的局限性 不能在增强for循环中访问位置,例如下面的代码: Java代码 String[] persons={"张三","李四","王五"}; for(int i=0;i
增强的for循环
增强for循环
增强for循环
JAVA增强for循环
7.3 增强for循环
04.for循环增强
增强的for循环
增强for循环
java 增强 for循环
增强for循环
增强for循环
增强for循环用法
增强For循环
JAVA 增强for 循环
Map 增强for循环
增强For循环
增强for循环
增强for循环用法
linux下绑定硬件中断到不同的cpu
可以传递多种数据格式AMFPHP,代替json和xml传输数据
POJ 2421 Constructing Roads(最小生成树)
GDI 映射模式
java排序的几种方法
增强for循环
backtrace_symbol的实现
连接sqlServer速度慢的解决方法
遇到 bind DNS 的 Master 与 Slave 不能同步更新问题
[iphone开发多线程之]IPhone的多线程编程初体验
init进程 && 解析启动脚本init.rc && init.rc中启动sh文件 && JAVA中跑shell
C++回调函数尝试
Linux内核分析之内存管理
常见开源游戏引擎收集