Java 7でコレクションリテラルを使用するにはどうすればいいですか? 質問する

Java 7でコレクションリテラルを使用するにはどうすればいいですか? 質問する

次の行を試しました:

Map<Character, Color> map={new Character('r'):Color.red,new Character('b'):Color.black};

しかし、Netbeans 7 ではエラー メッセージが表示され、これが拒否されます'{' expected, ';' expected

ソース/バイナリ形式を「JDK 7」に、プラットフォームを「JDK 1.7」に設定しましたが、他に何かする必要があるでしょうか?

ベストアンサー1

この質問で説明されているように、Java 7 も Java 8 もコレクションリテラルをサポートしていません。Project Coin のコレクション拡張機能は JDK8 に導入される予定ですか?

Googleのグアバ不変のコレクションのみが必要な場合は、ライブラリを使用します。ImmutableListImmutableSetそしてImmutableMapコレクションの作成を容易にする、オーバーロードされたファクトリ メソッドやビルダーがいくつかあります。

List<Integer> list = ImmutableList.of(1, 1, 2, 3, 5, 8, 13, 21);
Set<String> set = ImmutableSet.of("foo", "bar", "baz", "batman");
Map<Integer, String> map = ImmutableMap.of(1, "one", 2, "two", 3, "three");

編集

Java 9では、コレクションファクトリメソッドグアバのものと類似:

List.of(a, b, c);
Set.of(d, e, f, g);
Map.of(k1, v1, k2, v2)

Map.ofEntries(
    entry(k1, v1),
    entry(k2, v2),
    entry(k3, v3),
    // ...
    entry(kn, vn)
);

おすすめ記事