コレクションを扱う!JavaでListを使う方法【初心者向け】

初心者向けにJavaでListを扱う方法について解説しています。コレクションとは何なのかや配列との違いについて説明しています。書き方もサンプルプログラムを書いて説明しているので、実際に書きながら理解していきましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

初心者向けにJavaで書くListについて解説。Listの書き方から実際に書いてみたサンプルを紹介しながら説明しています。

Javaエンジニアを目指している人は今のうちに覚えておきましょう。

Javaについてそもそもよく分からないという方は、Javaとは何なのか解説している記事をまずご覧ください。

 

なお本記事は、TechAcademyのJava講座の内容をもとに作成しています。

 

田島悠介

今回はJavaのListを使ってみよう。

大石ゆかり

田島メンター!Listは何に使うんですか~?

田島悠介

これはデータ構造のひとつで、複数の要素を扱うものなんだ。まずはどういった性質のものなのか見ていくよ。

大石ゆかり

お願いします!

Listとは

Listとは、順序付けられたコレクションで、「シーケンス」とも呼ばれます。

コレクションは要素となる同じ型のデータの集合体です。コレクションにはList以外にも他にもMapやSetと言ったものもあります。

Listのイメージは配列に近いです。配列も同じ型の要素の集まりで、前から順番に連なっている形になっています。

順序付けられた、と言うのはそういう意味になります。

 

田島悠介

Listの基本的な概要だね。

大石ゆかり

こうやって見ると、配列との違いがよく分かりませんね。

田島悠介

では次は、Listと配列の違いについても解説しよう。

配列との違い

Listと配列は似ている、と感じるかもしれませんが、いくつか違いがあります。

最大の違いは、配列は一度要素の数を決めたら変更できないのに対し、Listは後から要素の数を変えることが可能です。

また、配列は宣言時に配列にしたいデータ型は必ず決まっていますが、Listは決めることもできますし、決めないようにもできます。

Listの方が配列より柔軟なのです。

 

[PR] Javaで挫折しない学習方法を動画で公開中

Listの書き方

Listはインターフェース(メソッドの戻り値、メソッド名、引数だけ規定したもの)なので、実際に使う場合はListインターフェースを実装したクラスを使います。

一番代表的な実装クラスはArrayListで可変長の配列のような実装クラスです。その他は、LinkedListやStackなどの実装クラスがあります。

書き方ですが、

List list = new ArrayList();

という形で宣言します。

<String>の部分がジェネリクスといい、必要ならこのListに入るデータ型を指定します。ここにはIntegerや自分で定義したクラス名などを指定します。

(ジェネリクスの指定は必須ではありませんが、指定するようにしましょう。)

注意点としては、基本データ型はここに指定することができませんので気をつけましょう。

 

Listに規定されているメソッドはたくさんありますが、代表的なものは、以下になります。最低限書き方を覚えておくと良いでしょう。

// 要素の追加
List#add

// 特定の要素の削除
List#remove

// すべての要素を削除
List#clear

// 要素の参照
List#get

// 現在の要素の数を返す
List#size

// リストに何も要素がない場合trueを、一つでもあった場合はfalseを返す
List#isEmpty

 

実際に書いてみよう

ここでは、Listを生成し、要素を追加、参照、削除といった一連の処理を例にコードを書いてみます。

List list = new ArrayList();

list.add("Hello");
list.add("Bonjour");
list.add("Guten Tag");
list.add("Hola");
list.add("こんにちは");

int size = list.size();
for(int i = 0; i < size; i++) {
  System.out.println(list.get(i));
}

list.remove(3);  //4番目の要素を削除

size = list.size();

for(int i = 0; i < size; i++) {
  System.out.println(list.get(i));
}

list.clear();  //要素を全て削除
System.out.println(list.isEmpty());

 

配列とは違い、Listを使うと要素の追加や削除などは簡単に行うことができます。

入門向けJavaの学習サイトもまとめているので、合わせてご覧ください。

 

田島悠介

文字列をいくつか格納したListを作成し、そこから指定の項目を削除してみたよ。

大石ゆかり

このようにあとから要素の数を変更できるのが、Listの特徴なんですね。

田島悠介

そして逆に、生成時の要素数がそのまま固定されるのが配列ということだね。状況に応じて使い分けてみよう。

大石ゆかり

はい!ありがとうございます!

また、オンラインのプログラミングスクールTechAcademyでは、Java講座を開催しています。

JavaやServletの技術を使ってWebアプリケーションの開発を学ぶことができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。