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

1 つの方法は次のとおりです。ループの外側でカウンター変数を定義し、カウンターをインクリメントします。

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
}

for each ループは要素に順番にアクセスするため、反復回数 = (インデックス + 1) が得られます。

編集: 要素を削除できれば、重複の問題が発生しないことを確認できます。または、従来の for ループが最適です

于 2012-11-12T04:21:45.807 に答える