2017-06-06 20 views
-2

私はJavaには本当に新しく、次のものをforeachループでforループに変換するのを助けることができるのだろうかと思っていましたか?式を仮定しforeachループをforループに変換する

は、アイテムのコレクションです:

for(Type x: expression){ 
    ... 
    for(Type y: x.expression){ 
    ..... 
    } 
} 
+0

'x'が' int'の場合は意味がありません。 'x'はこのコードに従ってIterableであるはずです。 – SHG

+0

'x'が' int'なので、問題のコードはコンパイルされません( 'for(int y:x){...}')。このコードはちょうど思いついたか、どこからコピーしましたか? – Radiodef

+1

私が作業している何かの後にループをモデル化しただけで、一般的な解決策を探していました。異なるタイプの条件を編集しました – TestNInja

答えて

0

expressionは、アイテムのコレクションのいくつかの種類にする必要があります。 for (Type item : items)ループはそれらのすべてを反復するだけです。

あなただけのコレクションの長さを必要として使用することができたコレクションの手動ループへ:

for (int i = 0; i < collection.size(); i++) { // or .length() if it is an array 
    Type item = collection.get(i); // or collection[i] if it is an array 
} 

コレクション内のアイテムの種類である必要がType

+0

この場合、ネストされたforeachループはどのように動作しますか? – TestNInja

+1

まあ、それらを入れ子にしてください。 'Type'が別のコレクションであれば、同じ方法で動作します。ネストされたループに 'i'(例えば' j')以外のものを使用するか、上書きされます。 – schrej

+1

拡張された 'for'文は、非配列ベースのリストでは実行されず、他のタイプのコレクションでも機能しないので、コンパイラによってインデックス変数を持つ' for'ループに変換されません。彼らは 'get(int)'メソッドを持っていないからです。 – Andreas

関連する問題