icon
icon

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

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

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

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

目次

1時間でできる無料体験!

そもそも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();

 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

実際に書いてみよう

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

 

要素の追加(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.size());
   
  // リストからすべての要素を削除
  strList5.clear();

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

}

実行結果

削除前:3
削除後:0

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

 

まとめ

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

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

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

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

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

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

1時間でできる無料体験!

執筆してくれたメンター

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

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

 

大石ゆかり

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

田島悠介

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

大石ゆかり

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

 

Javaを学習中の方へ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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