Java1.5新增属性之一就是增强的for循环 for(Object
o:objectList),以前一直用的for-each
(for inti=0;i<list.size();i++),增强的for循环没怎么用过,后来碰到的一些问题改变了我,使得现在优先使用增强的for循环,
看下面这段代码,循环获取两个骰子所有的可能结果:
enum Face{ONE,TWO,THREE,FOUR,FIVE,SIX};
for(Iterator i=Face.values();i.hasNext())
for(Iterator j=Face.values();j.hasNext())
System.out.printon(i+","+j);
它并不会输出我们期望的三十六种组合,而是ONE,ONE;TWO,TWO这样的六种组合,如果改成
for(Iterator i=Face.values();i.hasNext()){
Face f = (Face)i.next();
for(Iterator j=Face.values();j.hasNext())
System.out.printon(f+","+j);
}
则会输出期望的三十六种组合,如果直接使用增强的for循环,就会输出正确的结果 。
但并不是所有的情况都适合用增强的for循环,例如,需要迭代循环取得某个索引的值并删除,此时非for-each莫属了。