リストを扱う!Javaでarraylistを使う方法【初心者向け】

初心者向けにJavaでarraylistを使う方法について解説しています。リストの作成方法から要素の追加や置き換え、削除方法まで一通りの操作を覚えていきましょう。実際にソースコードを書きながら説明しています。

TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。

この記事では、JavaコレクションフレームワークのArrayListについて、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

目次

そもそもJavaについてよく分からないという方は、Javaとは何なのか解説した記事を読むとさらに理解が深まります。

 

田島悠介

今回は、Javaに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

ArrayListの使い方について詳しく説明していくね!

大石ゆかり

お願いします!

 

ArrayListとは

リストは配列とよく似ており、値の集合を扱うために利用します。

リストは要素を追加・参照することで、大量のデータ・情報などをプログラムで処理する際にとても便利なものです。

データベースから取得した大量のデータを処理する際などによく利用されています。

本記事の内容からまずは理解していき、より複雑な実装ができるように学習していきましょう。

 

[PR] Javaプログラミングで挫折しない学習方法を動画で公開中

ArrayListの書き方

ArrayList<型> リスト名 = new ArrayList<型>();

型の部分にはクラス名を指定します。

ここで指定したクラスのオブジェクトを要素として格納できるようになります。

 

例えば、以下のように記述すると、strList にはStringの要素を格納できます。

ArrayList<String> strList = new ArrayList<String>();

 

リストの要素は参照型である必要があるため、intのような基本データ型を要素に持つリストは作成できません。

基本型を扱うリストを作成したい場合は、下記のようにラッパークラスを用いて定義しましょう。
(Integerクラスはint型のラッパークラスです。)

ArrayList<Integer> intList = new ArrayList<Integer>();

 

※基本データ型とは、int、booleanなど、値を保持する際にどの種類のデータか定義したものです。intならば整数型、booleanならば真偽(ブール)型です。

※ラッパークラスとは、基本データ型と違い、オブジェクトとして扱えます。また、格納された値だけでなく用意されている関数などを利用できます。例えばIntegerクラスであれば、同じ値かどうかequalメソッドで比較できます。

 

ArrayListの操作

ArrayListオブジェクトには要素を追加したり削除するメソッドが用意されています。

以下のメソッドはよく使いますので覚えておきましょう。

  • addメソッド
  • setメソッド
  • getメソッド
  • removeメソッド
  • clearメソッド

addメソッド

ArrayListに1つの要素を追加します。

ArrayList<String> strList = new ArrayList<String>();
strList.add("文字列1");

setメソッド

ArrayListの対象の要素を上書きします。
以下のように番地を第一引数に指定し、第二引数に更新オブジェクトを渡します。

strList.set(0,"文字列1 更新");

getメソッド

ArrayList内の1つの要素を取得します。
以下のように引数に番地を指定して、要素を取得できます。

strList.get(0);

removeメソッド

ArrayList内の1つの要素を削除します。
以下のように引数に番地を指定して、要素を削除できます。

strList.remove(0);

clearメソッド

ArrayListの要素をすべて削除します。
処理が完了したときなどに使うことがあります。

strList.clear();

 

実際に書いてみよう

定義したリストに対し要素の追加、更新、取得、削除を行ってみましょう。

 

要素の追加(addメソッド)

リストに要素を追加する場合は、List.addメソッドを使います。

追加したい要素をaddメソッドの引数として渡します。
指定した要素はリストの最後に追加されます。

ソースコード

public static void main(String[] args) {

  // Stringの要素を格納するためのリストを用意
  List<String> strList1 = new ArrayList<String>();

  strList1.add("北海道");
  strList1.add("東京");
  strList1.add("沖縄");

  // 追加した順にリストに入る
  System.out.println(strList1);

}

実行結果

[北海道, 東京, 沖縄]

 

要素の更新(setメソッド)

リストの要素を更新・上書きする場合はList.setメソッドを使います。

第一引数で何番目の要素を上書きしたいか(0番から始まります)を指定し、第二引数で上書き後の要素を指定します。

ソースコード

public static void main(String[] args) {

  // Stringの要素を格納するためのリストを用意
  List<String> strList2 = new ArrayList<String>(3);

  strList2.add("カナダ");
  strList2.add("アメリカ");
  strList2.add("メキシコ");

  // 追加した順にリストに入る
  System.out.println("更新前" + strList2);

  // 1番目の要素を"日本"に上書きする
  strList2.set(1, "日本");

  // 上書き後のリスト("アメリカ"→"日本"になっている)
  System.out.println("更新後" + strList2);

}

実行結果

更新前[カナダ, アメリカ, メキシコ]
更新後[カナダ, 日本, メキシコ]

 

要素の取得(getメソッド)

リストから値を取り出す場合は、List.getメソッドを使います。
引数で何番目の要素を取り出したいかを指定します。

ソースコード

public static void main(String[] args) {

  // Stringの要素を格納するためのリストを用意
  List<String> strList3 = new ArrayList<String>(3);
 
  strList3.add("ロシア");
  strList3.add("モンゴル");
  strList3.add("中国");

  // リストから2番目の値を取得して表示 
  System.out.println(strList3.get(2));

 }

実行結果

中国

 

要素の削除(removeメソッド)

リストから要素を削除する場合は、List.removeメソッドを使います。
引数で何番目の要素を削除したいかを指定します。

ソースコード

public static void main(String[] args) {

  // Stringの要素を格納するためのリストを用意
  List<String> strList4 = new ArrayList<String>(3);

  strList4.add("サウジアラビア");
  strList4.add("エチオピア");
  strList4.add("南アフリカ共和国");

  // 削除前のリストを出力 
  System.out.println("削除前" + strList4);

  // 1番目の要素を削除する
  strList4.remove(1);

  // リストから"エチオピア"が削除されている
  System.out.println("削除後" + strList4);

  // リストから1番目の値を取得して表示。
  System.out.println(strList4.get(1));

}

実行結果

削除前[サウジアラビア, エチオピア, 南アフリカ共和国]
削除後[サウジアラビア, 南アフリカ共和国]
南アフリカ共和国

元々1番目の要素だったエチオピアが削除され、代わりにひとつ後ろの南アフリカ共和国が1番目になっています。

 

すべての要素の削除(clearメソッド)

リストから要素をすべて削除する場合は、List.clearメソッドを使います。

ソースコード

public static void main(String[] args) {

  // Stringの要素を格納するためのリストを用意
  List<String> strList5 = new ArrayList<String>();

  strList5.add("サウジアラビア");
  strList5.add("エチオピア");
  strList5.add("南アフリカ共和国");

  // 削除前リストの要素数を出力  
  System.out.println("削除前:" + strList5.length);
   
  // リストからすべての要素を削除
  strList5.clear();

  // 削除後リストの要素数を出力 
  System.out.println("削除後:" + strList5.length);

}

実行結果

削除前:3
削除後:0

リストの要素がすべて削除されたことが確認できました。

 

まとめ

リストの追加・参照・削除に関する説明は以上です。

今回は、ArrayListへの追加を文字列で実装しましたが、実際のアプリや業務システムではデータベースから取得したデータをArrayListで扱います。

データベースの情報をArrayListで持つため、単純な文字列ではなくシステムごとに定義したオブジェクトを扱うことがあります。

こちらの記事にデータベースの値をListに保持する説明があります。

ぜひ参考にしてみてくださいね。

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

執筆してくれたメンター

永井 浩平(ナガイ コウヘイ)

バックエンド、フロント、クラウドなど幅広い業務を行ってきました。
DB全般とspring(Java)、フロント系言語が得意分野です。現在はBtoBtoC事業を行っている会社で
社内SEとして勤務している傍
テックアカデミーのフロントエンドコース・Javaコースのメンターとして活動しています。

 

大石ゆかり

内容が分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

Javaを学習中の方へ

これで解説は終了です、お疲れさまでした。

  • つまずかず「効率的に」学びたい
  • 副業や転職後の「現場で使える」知識やスキルを身につけたい

プログラミングを学習していて、このように思ったことはありませんか?

テックアカデミーのJavaコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。

合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、JavaやServletの技術を使ったWebアプリケーション開発を学べます。

まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。

時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!