古い for ループ ( for(i = 0, j = 0; i<30; i++,j++)
) を 2 つの変数で使用できます Java で for-each ループ (または拡張 for ループ) を 2 つの変数で使用できfor(Item item : items)
ますか? その構文は何ですか?
質問する
20848 次
6 に答える
10
残念ながら、Java は拡張 for ループと呼ばれる初歩的なforeachループしかサポートしていません。他の言語、特に Scala のような FP 言語は、ネストされた反復と途中での要素のフィルタリングを可能にするリスト内包表記(Scala では内包表記と呼ばれます) として知られる構造をサポートしています。
于 2013-08-04T17:11:19.483 に答える
4
以下は、達成しようとしているのと同じ (パフォーマンス) 効果を持つはずです。
List<Item> aItems = new List<Item>();
List<Item> bItems = new List<Item>();
...
Iterator aIterator = aItems.iterator();
Iterator bIterator = bItems.iterator();
while (aIterator.hasNext() && bIterator.hasNext()) {
Item aItem = aIterator.next();
Item bItem = bIterator.next();
}
于 2015-01-24T05:33:33.977 に答える
1
「いいえ」という単純な答えはすでに与えられています。しかし、2 つの反復子を引数として取り、2 つの反復子からの要素のペアを返すように実装できます。ペアは 2 つのフィールドを持つクラスです。それを自分で実装する必要があるか、おそらく一部のApacheコモンズまたは同様のライブラリに存在します。
この新しい Iterator は、foreach ループで使用できます。
于 2013-08-04T18:18:31.443 に答える