我是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]++;
最后两行做了什么?
答案 0 :(得分:2)
这是 for-each循环。它将p
设置为ps
的第一个元素,然后运行循环体。然后它将p
设置为ps
的第二个元素,然后运行循环体。等等。
它近似为:
for(int k = 0; k < ps.length; k++)
{
int p = ps[k];
counts[p]++;
}
答案 1 :(得分:2)
Java5中引入的for-each循环。它主要用于遍历 数组或集合元素。 for-each循环的优点是 它消除了错误的可能性并使代码更多 可读的。
语法
for(data_type variable : array | collection){}
在你的情况下,这个循环正在迭代Array
不用于每个循环的等效代码
for (int i=0;i<ps.length;i++){
int p=ps[i];
counts[p]++;
}
答案 2 :(得分:0)
那是一个for循环。 for (int p : ps)
遍历ps
int数组
答案 3 :(得分:0)
该行在数组的每个索引上进行迭代,并在p
varable中的序列中取出其值。您可以通过
for (int p : ps){ // if ps is {1,2,3}
System.out.print(p+" "); // it will print 1 2 3
counts[p]++;
}