icon
icon

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

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

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,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人ずつつき、マンツーマンのメンタリングで学習をサポートし、習得することが可能です。

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する