What does for(int i : x) do?
本问题已经有最佳答案,请猛点这里访问。
我是Java新手。 我正在阅读某人对问题的解决方案,我遇到了这个问题:
1 2 3 4 5 6 7 | int[] ps = new int[N]; for (int i = 0; i < N; i++) ps[i] = input.nextInt(); int[] counts = new int[1005]; for (int p : ps) counts[p]++; |
最后两行做了什么?
这是for-each循环。 它将
这大约是:
1 2 3 4 5 | for(int k = 0; k < ps.length; k++) { int p = ps[k]; counts[p]++; } |
For-each循环(Advanced或Enhanced For循环):
The for-each loop introduced in Java5. It is mainly used to traverse
array or collection elements. The advantage of for-each loop is that
it eliminates the possibility of bugs and makes the code more
readable.
句法
1 | for(data_type variable : array | collection){} |
来源:每个循环的Java
在你的情况下,这个循环迭代
不用于每个循环的等效代码
1 2 3 4 | for (int i=0;i<ps.length;i++){ int p=ps[i]; counts[p]++; } |
该行迭代遍历数组的每个索引,并在
1 2 3 4 |
这是一个for循环。