バナー画像

Javaプログラムで頻繁に利用することになるコレクション「List」ですが、色々な言語を触っていると使い方をつい忘れてしまいがちです。

本記事では、Javaプログラマーなら必ず利用する「List」の初期化と値の追加方法、初期値設定のやり方をサンプルコードを交えながらご紹介していきます。

JavaでListの初期化と値を追加する基本的な方法について理解しよう

まずはJavaプログラムにおいての必須知識となるJavaでListを初期化する方法についてご紹介していきます。

Listを初期化してみよう

まずはJavaでListを利用する際の初期化方法についてご紹介していきます。
基本構文は下記の通りです。

List<データ型> インスタンス名 = new ArrayList<データ型>();

Listは様々なデータ型を格納することが可能なため、Listの初期化時にデータ型を指定します。
データ型とは、「String」や「Integer」などを指します。

またダイアモンド構文を用いて下記のように記載することも可能です。

List<データ型> インスタンス名 = new ArrayList<>();

右側のデータ型が省略されていることがご確認頂けます。

Listに値を追加してみよう

Listの初期化が完了すれば次に値の追加が必要になります。

値を追加する方法としては「add」メソッドを利用する方法があります。

インスタンス名.add(追加する値);

JavaでListを初期化するタイミングで初期値も設定してみよう


Listを初期化するタイミングで同時に初期値を設定する方法はいくつか存在します。

ポテパンダの一言メモ

メソッドによってはデータ領域が固定されるため注意が必要です。

asListで初期値を設定するとリストに追加出来ない?!

Listの初期化でよく利用されるメソッドに「asList」があります。

まずはサンプルコードで使い方についてご紹介していきます。

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
      List sampleList = Arrays.asList("あい", "う", "えお"); // ※1
      System.out.println(sampleList.get(0));
      System.out.println(sampleList.get(1));
      System.out.println(sampleList.get(2));
    }
}

実行した結果が下記の通りとなります。

あい
う
えお

※1の行で初期値を設定していることがご確認頂けます。

しかし注意して頂きたいのがサンプルコードのように「asList」メソッドで初期値を設定した場合、Listに新たに値を設定することが出来なくなります。

下記のサンプルはコンパイルすることは可能ですが、実行時にエラーとなるので確認してみましょう。

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
      List sampleList = Arrays.asList("あい", "う", "えお");
      System.out.println(sampleList.get(0));
      System.out.println(sampleList.get(1));
      System.out.println(sampleList.get(2));

      // リストに追加しようとするとエラーになる
      sampleList.add("かきく");
      System.out.println(sampleList.get(3));
    }
}

実行した結果が下記の通りとなりました。

あい
う
えお
Exception in thread "main" java.lang.UnsupportedOperationException

java.lang.UnsupportedOperationExceptionが出力されていることをご確認頂けます。

原因はサンプルのような記述法でasListを使用した場合、あらかじめ決められたサイズのリストを定義し、値の追加・削除をすることが出来ない仕様となっているためです。

asListは書き方によっては値の追加・削除が可能

上記のサンプルではasListメソッドではリストに追加・削除出来ないとご紹介しましたが、ArrayListのコンストラクタに指定することでリストのサイズを決めずに初期値を設定することも可能です。

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
      List sampleList = new ArrayList(Arrays.asList("あい", "う", "えお"));
      System.out.println(sampleList.get(0));
      System.out.println(sampleList.get(1));
      System.out.println(sampleList.get(2));

      sampleList.add("かきく");
      System.out.println(sampleList.get(3));
    }
}

今回のサンプルではリストを初期化する際に、new ArrayListの引数としてasListメソッドを利用しています。
実行した結果が下記の通りとなります。

あい
う
えお
かきく

エラーとならずにListに値が追加されていることがご確認頂けます。

同じ「asList」メソッドでも記述方法によって、初期化後にListへ追加・削除出来るどうかが決まりますので注意が必要です。

addメソッドを利用して初期値を追加することも可能

最初にご紹介したnew演算子とaddメソッドを応用して、Listの初期化時に初期値まで設定してしまうことも可能です。

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
      List sampleList = new ArrayList(){{add("あい"); add("う"); add("えお");}};
      System.out.println(sampleList.get(0));
      System.out.println(sampleList.get(1));
      System.out.println(sampleList.get(2));

      sampleList.add("かきく");
      System.out.println(sampleList.get(3));
    }
}

サンプルコードを実行した結果が下記の通りとなります。

あい
う
えお
かきく

出力結果は1つ前のサンプルと全く同じ結果となっていることがご確認頂けます。

さいごに:JavaでListの初期化および初期値の設定は記述方法に気を付けよう!

本記事では、JavaでのListの初期化方法と値の追加、初期値設定の方法についてご紹介してきました。

Listへの初期値設定は余程の理由が無ければ、最初のサンプルとして紹介した「Arrays.asList」を使用することは避けるべきというのが昨今の風潮です。

ハードウェアのメモリ搭載量も増えていますので、無駄にバグを生むような実装はせず、2つ目や3つ目のサンプルでご紹介した初期値設定の方法を利用することをお勧めします。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。