Javaの拡張forループでインデックスを取得の方法
Javaでは、拡張forループ(for-eachループとも呼ばれる)は配列やコレクションに対してイテレートするための簡略化された構文です。これは本質的にイテレータを使用して要素をイテレートするため、直接的な添字アクセスを提供しません。
添字を取得する必要がある場合は、拡張構文 for ループの代わりに従来の for ループを使用できます。例:
int[] nums = {1, 2, 3, 4, 5};
for (int i = 0; i < nums.length; i++) {
int num = nums[i];
System.out.println("下标:" + i + ",元素:" + num);
}
これにより、iによってインデックスを取得できます。
他の方法として、java.util.List の indexOf() メソッドを使用することで、要素のインデックスを取得できます。たとえば、
List<Integer> nums = Arrays.asList(1, 2, 3, 4, 5);
for (Integer num : nums) {
int index = nums.indexOf(num);
System.out.println("下标:" + index + ",元素:" + num);
}
ただし、indexOf()メソッドの時間計算量はO(n)であるため、大規模なコレクションではパフォーマンスの問題が発生する可能性があることに注意してください。