Javaで1行でリストを初期化する方法

こんにちは、さるまりんです。

こんなJavaコードがあります。

ArrayList<String> areas = new ArrayList<String>();
areas.add("北海道");
areas.add("東北");
areas.add("関東");
areas.add("中部");
areas.add("近畿");
areas.add("中国");
areas.add("四国");
areas.add("九州");

ArrayList areaに日本の地域名を格納しています。

これを短くできないかなと思いやってみました。

まずはこちら。

ArrayList<String> areas = new ArrayList<String>(
   Arrays.asList("北海道", "東北", "関東", "中部", "近畿", "中国", "四国", "九州")
);

Arrays.asList()メソッドでリストを取得し、それをのコンストラクタに渡しています。

次はこちら。

ArrayList<String> area = new ArrayList<String>() {{
    add("北海道");
    add("東北");
    add("関東");
    add("中部");
    add("近畿");
    add("中国");
    add("四国");
    add("九州");
}};

今度は初期化ブロックを使っています。

一度値を設定したら変更しないし、簡潔にかけたらいいなと思いやってみました。

好みはあるかと思いますが1行(1ステートメントですね)にして、これくらいのコードなら見やすくなったかな。

読んでくださってありがとうございます。

それではまた!