【Java入門】Listの初期化(newとArrayListでの宣言とadd)

JavaののListの初期化方法ってしっかり覚えていますか?

Listの初期化方法を知りたい
Listの初期化でまとめて値を渡したい
Listの初期化でサイズを指定して初期化したい

この記事では、Listの初期化について以下の内容で解説していきます。

  • 【基礎】new演算子とArrayListで空のListを用意する方法
  • 【基礎】asListを使って初期化時に値を追加する方法
  • 【基礎】addを使って初期化時に値を追加する方法
  • 【発展】サイズを指定して初期化する方法

Listの初期化についてわかりやすく解説していますので、ぜひ参考にしてください!

Listを初期化する方法

new演算子とArrayListで空のListを用意する方法

まず初めに空のListの作り方を解説します!

List<データ型名> オブジェクト名 = new ArrayList<データ型名>();

Listを宣言するには、Listの要素のデータ型を指定する必要があります。

Listの要素のデータ型は例えば、Integer型やString型などのデータ型になります。ListのオブジェクトにはArrayListクラスなどで生成したインスタンスを格納します。

インスタンスを生成する際には、new演算子を用います。

例えばString型の要素をもつListの場合は、以下のように記述します。

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

これで空のListが用意できました。

初期化時に値を追加する方法についてみていきましょう!

asListを使って初期化時に値を追加する方法

一つ目はasListを使う方法です!

以下のように記述します。

List<データ型名> オブジェクト名 = new ArrayList<データ型名>(Arrays.asList(要素[0], 要素[1], ・・・));

サンプルコードで確認しましょう。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Main {
 
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>(Arrays.asList("Apple", "Orange", "Melon"));
        
        for(int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }

}

実行結果:

Apple
Orange
Melon

これでListの初期化と同時に文字列を追加することができました。

ここで注意があります。
以下のような書き方で初期化した場合は、Listが固定サイズになります。

addやremoveで要素を追加したり削除することができなくなりますので、注意しましょう!

間違えると困ったことになります・・・

List<String> list = Arrays.asList("Apple", "Orange", "Melon");

Arrays.asList() が返すインスタンスは、java.util.Arraysの内部クラスのArrayList です。

java.util.ArrayListとは別のモノになります。

addを使って初期化時に値を追加する方法

二つ目はaddで追加する方法です!

List<データ型名> オブジェクト名 = new ArrayList<データ型名>(){
    {
        add(要素[0]);
        add(要素[1]);
        ・・・
    }
};

こちらもサンプルコードで確認しましょう。

import java.util.ArrayList;
import java.util.List;

public class Main {
 
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>(){
            {
                add("Apple");
                add("Orange");
                add("Melon");
            }
        };
        
        for(int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }

}

実行結果:

Apple
Orange
Melon

この方法でも初期化と同時にいくつかの値を追加する事ができます。

初期化した後にListにデータを追加する方法は次の記事で解説しています。

【3分でわかるJavaの基礎】Listにデータを追加する方法(add,addAll)
更新日 : 2017年6月7日

サイズを指定して初期化する方法

要素を追加したときに初期化で設定したサイズを超える場合は、サイズの拡張処理が入り動作が遅くなるため注意が必要です。

要素数が多く、大きなサイズが必要になることがわかっている場合は、次のように大きなサイズをあらかじめ指定して初期化することで動作が遅くなることを避けることができます。

List<データ型名> オブジェクト名 = new ArrayList<データ型名>(要素数);

例えばListの要素のデータ型がString型で、要素数が1000の場合は以下のように記述します。

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

リストのサイズを指定しない場合はデフォルトのサイズの10が割り当てられます。

new演算子での初期化について知りたい方へ

Listの他にもString型やDate型もnew演算子を使ってオブジェクトを初期化します。

オブジェクトに格納するインスタンスを生成する際に使用するコンストラクタの使い方については、こちらで詳しく解説しています。
参考にしてくださいね!

【Java入門】コンストラクタの使い方総まとめ(クラス/インスタンス)
更新日 : 2019年4月8日

String型の例

String型でnew演算子を使った初期化については、こちらで詳しく解説していますので参考にしてくださいね!

【Java String】7つの基本的な使い方で文字列操作を理解しよう
更新日 : 2019年5月7日

Date型の例

Date型でnew演算子を使った初期化については、こちらで詳しく解説していますので参考にしてくださいね!

【Java】Dateクラスで日付を扱う方法を5つのパターン別に解説
更新日 : 2019年10月14日

まとめ

いかがでしたか?

今回はListの初期化について解説しました!もしListの初期化を忘れてしまったらこの記事を確認してください!

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

中沢 丈

中沢 丈

フリーランスエンジニア。
システム開発からコンテンツ作成まで幅広く対応します。

連絡先はこちらです。
[email protected]

おすすめコンテンツ

いまならレッスン期間が2週間延長!この秋、プログラミングを学ぼう

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー