一般的for循环需要事先知道循环的次数,而高级for则不需要。(高级for出现于jdk1.5版本以后)
另外高级一般的for循环用来遍历数组,而高级for可以遍历数组和集合等,当然遍历集合的时候你也可以用迭代器的方法,(其实高级for的底层原理就是Interator迭代器的迭代原理)不过,综合而言,如果你使用高级for的话会使你的代码短小精悍,优雅许多。如果没有特殊需求的情况下,一般推荐使用增强for。(另外,java版本的升级带来的新特性无非是从三方面入手:提高效率,简化书写,提高安全性。显然增强for就是为了简化书写嘛)
当然,增强for也是有一些弊端的,例如,在循环中你无法知道当前元素的位置的。如果增强for用来遍历ArrayList集合中的元素,并在遍历中增删元素的话会发生异常的,所以ArrayList定义了自己的迭代器ListIterator来解决这个问题。 |
|