【初心者向け】JavaのArrayListの初期化方法まとめ!用途別にやさしく解説

こんにちは。ゆうせいです。

今回は、JavaのArrayListの初期化方法について、いろいろなパターンをわかりやすく解説していきます。初心者の方でも理解しやすいように、コード例その用途や注意点を丁寧に紹介しますね。


ArrayListとは?

まず前提として、「ArrayList(アレイリスト)」とは何でしょうか?

これは、Javaで使える「動的な配列」のようなものです。通常の配列(String[] names = new String[5];など)は、サイズを最初に決める必要がありますよね。でもArrayListは、あとから要素をどんどん追加できる便利な入れ物です。


ArrayListの初期化パターン一覧

1. 空のArrayListを作成する(基本)

List<String> list = new ArrayList<>();

説明

  • 最も基本的な使い方。
  • あとからadd()メソッドで要素を追加していきます。

メリット

  • 汎用的で柔軟。

デメリット

  • 初期データがないときは手動でadd()する必要がある。

2. 初期要素ありで一括生成(Arrays.asList)

List<String> list = new ArrayList<>(Arrays.asList("A", "B", "C"));

解説

  • Arrays.asList()で配列をリストに変換し、それをArrayListのコンストラクタに渡す形。

注意点

  • Arrays.asList()で作られたリスト自体は固定長なので、直接使うとadd()remove()が使えません。
  • だからこそ、ArrayListに包んで使うのが正解です!

3. Java 8以降:Streamを使って初期化

List<String> list = Stream.of("A", "B", "C")
                          .collect(Collectors.toCollection(ArrayList::new));

ポイント

  • Java 8から使えるStream APIを使った方法。
  • 可読性はやや下がりますが、フィルタリングなどと組み合わせると超強力。

List<Integer> evenList = IntStream.range(1, 10)
                                  .filter(i -> i % 2 == 0)
                                  .boxed()
                                  .collect(Collectors.toCollection(ArrayList::new));


4. ダブルブレースイニシャライザ(非推奨)

List<String> list = new ArrayList<String>() {{
    add("A");
    add("B");
    add("C");
}};

メリット

  • 直感的で書きやすい。

デメリット

  • 内部で匿名クラスを生成するため、メモリリークの原因になる場合も。
  • Javaの公式ドキュメントでもあまり推奨されていません。

5. List.of()(Java 9以降)

List<String> list = List.of("A", "B", "C");

特徴

  • イミュータブル(変更不可)なリストを生成。
  • add()remove()を使うと例外が出ます!

おすすめの使いどころ

  • 定数的なリストを用意したいとき。
  • 例えば、「曜日のリスト」など、変わらない情報を扱う場合。

まとめ:状況に応じた使い分けをしよう!

方法Javaバージョン特徴add/remove可能?
new ArrayList<>()すべて柔軟、基本形可能
Arrays.asList + new ArrayList1.5以上初期要素付き可能
Stream + Collectors8以上複雑処理に便利可能
ダブルブレースすべてシンプルだが非推奨可能(注意)
List.of()9以上イミュータブル不可

これからどう学べばいい?

ArrayListはJavaで非常によく使われる基本のクラスです。まずは色々な初期化方法を試しながら、「どのタイミングでどれを使えばいいか」を判断できるようにしましょう。

次は、ArrayListの操作方法(add、remove、sort、containsなど)を学ぶのがおすすめですよ!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。