一直思维定式般的只知道for的一种写法:for(int i; i<n; i++) ... 昨天才偶然发现java中的类似foreach用法,见下表
For-each loop | Equivalent for loop |
---|---|
for (type var : arr) { body-of-loop } | for (int i = 0; i < arr.length; i++) { type var = arr[i]; body-of-loop } |
for (type var : coll) { body-of-loop } | for (Iterator<type> iter = coll.iterator(); iter.hasNext(); ) { type var = iter.next(); body-of-loop } |
需要注意的是这种方式是只读操作不能赋值,只能向前不能后退,每次只能读一个不能做前后比较,每次只处理一个array不能两个array相比较。至少要求java5.
信息来源:http://www.leepoint.net/notes-java/flow/loops/foreach.html