ArrayList を 1 行で初期化する 質問する

ArrayList を 1 行で初期化する 質問する

テスト目的でオプションのリストを作成したかったので、最初は次のようにしました。

ArrayList<String> places = new ArrayList<String>();
places.add("Buenos Aires");
places.add("Córdoba");
places.add("La Plata");

次に、コードを次のようにリファクタリングしました。

ArrayList<String> places = new ArrayList<String>(
    Arrays.asList("Buenos Aires", "Córdoba", "La Plata"));

これを行うより良い方法はありますか?

ベストアンサー1

単に ArrayList として宣言する方が簡単になりますがList、ArrayList にする必要はありますか?

List<String> places = Arrays.asList("Buenos Aires", "Córdoba", "La Plata");

または、要素が 1 つしかない場合:

List<String> places = Collections.singletonList("Buenos Aires");

これは、不変でplacesあることを意味します(変更しようとすると例外がスローされます)。UnsupportedOperationException

具体的な可変リストを作成するには、不変リストからArrayListを作成します。ArrayList

ArrayList<String> places = new ArrayList<>(Arrays.asList("Buenos Aires", "Córdoba", "La Plata"));

正しいパッケージをインポートします。

import java.util.Arrays;

おすすめ記事