1. ホーム
  2. java

[解決済み] Pythonの'enumerate'関数に相当するJavaはありますか?

2023-06-17 23:05:38

質問

Pythonでは enumerate 関数を使うと、一連の (index, value) ペアに対して反復処理を行うことができます。例えば

>>> numbers = ["zero", "one", "two"]
>>> for i, s in enumerate(numbers):
...     print i, s
... 
0 zero
1 one
2 two

Javaでこれをやる方法はないでしょうか?

どのように解決するのですか?

を実装しているコレクションでは List インターフェイスを実装している場合は listIterator() メソッドを使って ListIterator . イテレータは、(とりわけ)2つのメソッドを持ちます。 nextIndex() で、インデックスを取得します。 next() で、値を取得します(他のイテレータと同様)。

ですから、上記のPythonと同等のJavaは、次のようになります。

import java.util.ListIterator;  
import java.util.List;

List<String> numbers = Arrays.asList("zero", "one", "two");
ListIterator<String> it = numbers.listIterator();
while (it.hasNext()) {
    System.out.println(it.nextIndex() + " " + it.next());
}

というように、Pythonと同様に出力します。

0 zero
1 one
2 two