我々は2つの変数をforループ(for(i = 0, j = 0; i<30; i++,j++)
)の古いを使用することができます 我々はのために、各ループを使用(または拡張forループ)できるJavaで(二つの変数を持つfor(Item item : items)
の?そのための構文は何でしょうか。Javaの新しいforループを2つの変数で使用できますか?
答えて
は残念ながら、Javaは唯一の初歩的なのforeachループをサポートし、ループのための強化と呼ばれます。他の言語、Scalaのような特にFPのものは、道に沿って要素のフィルタリングと同様に、ネストされた反復を可能にリスト内包(Scalaはそれ理解ためを呼び出す)として知られている構文をサポートしています。
foreachループは、物事の一つだけのコレクションがあることを前提としています。反復ごとに各要素に対して何かを行うことができます。一度に2つのコレクションを繰り返すことができるなら、それをどのように動作させたいでしょうか?もし彼らの長さが違うなら?
あなたは
Collection<T1> collection1;
Collection<T2> collection2;
を持っていると仮定すると、あなたは両方を反復がマージされた結果のいくつかの並べ替えを返す反復可能ラッパーを書くことができます。私は考えることができるが、私はそれのために多くの使用を参照していないものに最も近いです
for(TwoThings<T1, T2> thing : new TwoCollectionWrapper(collection1, collection2) {
// one of them could be null if collections have different length
T1 t1 = thing.getFirst();
T2 t2 = thing.getSecond();
}
。両方のコレクションが一緒に繰り返される場合は、最初にCollection<TwoThings>
を作成する方が簡単です。
あなたも順次反復処理したいことができ、並列に反復処理に加えて。そのための実装があります。グアバのIterables.concat()
単純な答え「いいえ」をすでに与えられています。しかし、2つのイテレータを引数として実装し、2つのイテレータから来る要素のペアを返すように実装できます。ペアは2つのフィールドを持つクラスです。あなたはそれを自分で実装しなければならないか、あるいはおそらくいくつかのApacheコモンズまたは同様のlibに存在するでしょう。
この新しいイテレータは、foreachループで使用することができます。
次はあなたが達成しようとしている同じ(パフォーマンス)効果持っている必要があります:それはloop`ための `新しいものではないのです
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();
}
- 1. Forループで2つの変数を使用するには?
- 2. Javaの2つの文字列配列に対して1つのforループを使用できますか?
- 3. Cの 'for'ループの2つの変数
- 4. Javaでは、forループ内の変数名を変更できますか?
- 5. forループで変数を使用する
- 6. forループで使用できる、antの変数のリストを定義します。
- 7. java forループで変数が更新されない
- 8. Forループは2つのステップしか処理できません
- 9. forループで2つのリストを使用しようとしていません
- 10. Javaでforループを使用して複数のリストを表示
- 11. forループを使用しない2つのデータセットの行のファジーマッチング
- 12. ForEach for forループを使用しないで変換しますか?
- 13. forループの両方の変数でforループを使用する関数が完全に機能しない
- 14. 宣言された2つのオブジェクトに対して1つのforループを使用できますか?
- 15. SSISでforループを使用して複数の変数を使用する
- 16. このforループで浮動小数点数を使用できますか?
- 17. forループ内forループで宣言された変数iの値を使用しますか?
- 18. Java For Loop - Forループでは何をしていますか?
- 19. forループのSQLクエリでPythonリストを使用できますか?
- 20. forループを使用して2つのデータフレームを比較する
- 21. "for i in"を2つの変数でどのように使用できますか?
- 22. foreach/forループで変数に値を再割り当てし、その値をループ外で使用しますか?
- 23. forループで長い変数型を使用する
- 24. twigはforループで1つの値を使用します
- 25. Forループでコンストラクタの関数を使用
- 26. 2進数の変更> Forループを使用した10進数
- 27. forループで2回削除した後に変数を使用できません(リンクリスト)
- 28. 子ノードで変数を使用できますか? (xslt/for-each)
- 29. 古いC forループから新しいSwiftループへの変更
- 30. bashのforループで変数を使用する
を、それは基本的にforeachループです。できません。 – MightyPork
@MightyPorkループ*用に強化されました。 –
名前はどのように変更されて目的と用途が変わりますか?これはforeachループと同じです。 – MightyPork