for(int i : x) 有什么作用?

ksr*_*j98 8 java for-loop

我是 Java 新手。我正在阅读某人对一个问题的解决方案,我遇到了这个:

        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]++;
Run Code Online (Sandbox Code Playgroud)

最后两行有什么作用?

use*_*751 6

这是一个for-each 循环。它设置p为 的第一个元素ps,然后运行循环体。然后它设置p为 的第二个元素ps,然后运行循环体。等等。

它大约是以下内容的缩写:

for(int k = 0; k < ps.length; k++)
{
    int p = ps[k];
    counts[p]++;
}
Run Code Online (Sandbox Code Playgroud)