也许这是一个愚蠢的问题,但我仍然想知道
如果我使用
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
答案 0 :(得分:5)
一种方法是:在循环外定义一个计数器变量并递增计数器。
ArrayList<Integer> Data = new ArrayList<Integer>();
int iterCnt = 0;
for (int data : Data) {
iterCnt++;
System.out.println(iterCnt);
}
答案 1 :(得分: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循环最适合