14

Ruby では、次のようなことができます。

["FOO", "BAR"].each do { |str| puts str }

使用しているステートメントで定義された配列を反復処理します。Javaで配列を次のように定義できるので:

String[] array = { "FOO", "BAR" };

次のようなループを設定することで、変数の定義を回避できることはわかっています。

for (String str : new String[] { "FOO", "BAR" }) { ... }

しかし、最初に配列を含む変数を定義せずに、Javaがより簡潔なものを持ち、動的割り当てを回避できるようにすることを望んでいました。次のような構文はありますか?

for (String str : { "FOO", "BAR" }) { ... }

それは私が欠けているJavaで動作するより簡潔ですか、それとも私の唯一の選択肢を超えた解決策ですか?

4

4 に答える 4

6

Java 8 では、次のことが可能になります。

Stream.of("FOO", "BAR").forEach(s -> System.out.println(s));

これは、新しいjava.util.streamパッケージとラムダ式を使用します。

于 2013-07-03T17:01:39.067 に答える
2

Java のような言語は、Ruby のような簡潔な言語に比べて非常に冗長です。あなたがすでに持っているものがあなたの最善の策であるように私には思えます:

for (String str : new String[] { "FOO", "BAR" }) { ... }
于 2013-07-03T16:51:24.910 に答える