0

也许这是一个愚蠢的问题,但我仍然想知道

如果我使用

ArrayList<Integer> Data=new ArrayList<Integer>();
for(int data:Data)
 //some code here
 //print out the iteration times

我想在
不使用的情况下打印出迭代时间(不是执行时间)

for int i;i<blahblahblah;i++) output i

例如输出

output:
This is iteration times: 1   the data is : blahblahblah
This is iteration times: 2   the data is : blahblahblah
This is iteration times: 3   the data is : blahblahblah
4

2 回答 2

5

一种方法是:在循环外定义一个计数器变量并增加计数器。

ArrayList<Integer> Data = new ArrayList<Integer>();
int iterCnt = 0;
for (int data : Data) {
    iterCnt++;
    System.out.println(iterCnt);
}
于 2012-11-12T04:13:34.250 回答
1

好吧,这在美学上可能不正确

ArrayList<Integer> Data=new ArrayList<Integer>();
for(int data:Data)
{
   System.out.println( Data.indexOf(data)+1 );
   Data.remove(Data.indexOf(data));//to ensure the index is correct even if there are duplicates
}

因为对于每个循环都按顺序访问元素,它会给你迭代次数 = (index + 1)

编辑: 如果您可以删除元素,则可以确保不会发生重复问题。否则传统的 for 循环最适合

于 2012-11-12T04:21:45.807 回答