1. 10, 20, 30 を順に add した ArrayList の toString を返す
  2. add 順が変わると結果の並びも変わる (3, 1, 2)
  3. 同じ値を重複 add すると size 3 のリストになり "[5, 5, 5]" を返す
コース一覧
Java 中級:コレクション・Stream・例外処理
ArrayList を使う

Java 中級:コレクション・Stream・例外処理

コレクション、ジェネリクス、例外処理、Stream API、関数型インターフェース、日付処理、ファイル I/O、継承など Java の中級トピックを実践的に学べるコースです。Java の基礎文法とオブジェクト指向を理解している学習者を対象に、現場の Java コードを読み書きするための知識を補強します。約 16 時間 (1 日 30 分 × 32 日) で 64 レッスンを修了でき、修了後は Spring Boot や業務システム開発に必要な Java 力が身につきます。

1
コレクション基礎
01. ArrayList を使う5分
02. List を走査する5分
03. 要素の削除と検索5分
04. HashMap の基本5分
05. Map を走査する5分
06. Set で重複を排除5分
07. Collections クラスの便利メソッド5分
08. コレクション基礎 まとめクイズ5分
2
ジェネリクス
01. ジェネリッククラスを作る5分
02. ジェネリックメソッド5分
03. 境界型パラメータ5分
04. ワイルドカード ?5分
05. Pair<K,V> を作る5分
06. ジェネリクス まとめクイズ5分
3
例外処理
01. try-catch で例外をつかむ5分
02. 複数の catch ブロック5分
03. throws と例外の伝播5分
04. 独自の例外を作る5分
05. try-with-resources5分
06. finally ブロック5分
07. 例外処理 まとめクイズ5分
4
Stream API
01. Stream を作る5分
02. filter で絞り込む5分
03. map で変換する5分
04. reduce で集約する5分
05. collect で集める5分
06. sorted で並び替え5分
07. distinct で重複排除5分
08. limit と skip5分
09. 並列ストリーム5分
10. Stream API まとめクイズ5分
5
関数型インターフェース
01. ラムダ式の基本5分
02. メソッド参照 ::5分
03. Function インターフェース5分
04. Predicate インターフェース5分
05. Consumer と Supplier5分
06. BiFunction と 2 引数の関数5分
07. 関数型インターフェース まとめクイズ5分
6
文字列操作
01. String.format で書式化5分
02. StringBuilder で連結5分
03. 正規表現の基本5分
04. split と join5分
05. 文字列操作 まとめクイズ5分
7
日付と時刻
01. LocalDate で日付を扱う5分
02. LocalDateTime で時刻も扱う5分
03. Duration で時間差を計算5分
04. 日付の書式化とパース5分
05. 日付の加減算5分
06. 日付と時刻 まとめクイズ5分
8
ファイル I/O
01. Files でファイルに書き込む5分
02. ファイルを行単位で読む5分
03. Path でファイルパスを扱う5分
04. BufferedReader と Stream API5分
05. ファイルの存在確認と削除5分
06. ファイル I/O まとめクイズ5分
9
継承とポリモーフィズム
01. extends で継承する5分
02. super で親を呼ぶ5分
03. メソッドのオーバーライド5分
04. abstract で抽象クラス5分
05. interface で契約を定義5分
06. default メソッド5分
07. instanceof と型パターン5分
08. ポリモーフィズムを活かす5分
09. 継承とポリモーフィズム まとめクイズ5分

ArrayList を使う

3 つ作った箱に、4 つ目が入らない

配列は new String[3] と書いた時点で箱の数が決まります。あとから 4 つ目を足したくなったら、もっと大きい配列を作り直して中身を全部コピーするしかありません。ユーザーが何件入力するか分からない画面では、この作り直しが毎回ついて回ります。

java.util.ArrayList は、その手間を肩代わりしてくれる伸び縮みするリストです。内部では大きめの配列を持っていて、足りなくなったら勝手に確保し直して引っ越します。使う側は add と書くだけで済みます。

配列との違いは 2 つ覚えれば十分です。長さが固定か可変か、そして取り出し方が arr[0] か list.get(0) かです。

import と山かっこを書かないと動かない

Java

import java.util.ArrayList; public class Demo { public static void main(String[] args) { ArrayList<String> tasks = new ArrayList<>(); tasks.add("買い物"); tasks.add("洗濯"); System.out.println(tasks.size()); // 2 System.out.println(tasks.get(0)); // 買い物 } }

ArrayList は java.util パッケージにいるので、ファイルの先頭に import java.util.ArrayList; が要ります。忘れると cannot find symbol で止まります。

山かっこの <String> は「このリストには String しか入れない」という宣言です。整数を入れたいときは int ではなく Integer と書きます。右側の new ArrayList<>() は左側と同じ型になるので、山かっこの中は空のままで構いません。

Java

ArrayList<Integer> counts = new ArrayList<>(); counts.add(10); // 10 は自動で Integer に包まれる

println に渡すと、中身がそのまま見える

リストごと println に渡すと、決まった形で中身が出てきます。

Java

System.out.println(tasks); // [買い物, 洗濯]

これは toString() が呼ばれた結果です。角かっこで囲み、要素はカンマと半角スペースで区切る、という書式が決まっています。中身を目で確かめたいときに、要素を 1 つずつ取り出す必要はありません。

つまずきやすいのは次の 2 つです。list[0] と書くとコンパイルエラーになります。角かっこの記法は配列専用なので list.get(0) を使ってください。もう 1 つは unexpected type found: int というエラーで、これはほぼ ArrayList<int> と書いたときのものです。落ち着いて Integer に直しましょう。

課題では、受け取った引数を渡された順に add してから、リストを文字列にして返します。add した順がそのまま並び順になるので、順番を入れ替えると結果も変わります。同じ値を 2 回入れても弾かれず、そのぶん要素が増えます。

要件

  1. ファイル先頭で import java.util.ArrayList; を書くこと
  2. ArrayList<Integer> を new ArrayList<>() で生成すること (raw 型は禁止)
  3. 引数 a b c の順で末尾に add し、最後に toString() の結果を return すること

入出力例

buildList(10, 20, 30) → "[10, 20, 30]" buildList(3, 1, 2) → "[3, 1, 2]" buildList(5, 5, 5) → "[5, 5, 5]"

ヒント

`ArrayList` の `toString()` は `[10, 20, 30]` のように `[` `]` で囲み、`, ` (カンマ + 半角スペース) で要素を区切ります

整数を入れるリストなのでジェネリクスは `<Integer>` を指定します。`<int>` は文法エラーになります

`list.add(a); list.add(b); list.add(c);` の **順序** が結果の並びを決めます。`add` 順を入れ替えると `toString()` の結果も入れ替わります

生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2026/05/19·更新 2026/08/26

関連レッスン

  • List を走査する

    ArrayList の中身を最初から最後まで順番に取り出す。インデックス for、拡張 for、Iterator の 3 つの走査方法を使い分けられるようになる。

  • 要素の削除と検索

    ArrayList から要素を消したり、目的のものが入っているかを確かめる方法を学ぼう。

  • HashMap の基本

    Java の `HashMap` を使って、キーと値のペアを保存し、商品名から価格を引き出すメソッドを作ろう。

  • Map を走査する

    Map をキーと値のペアでループする方法を学ぼう。entrySet / keySet / values の使い分けと、順序を保証する LinkedHashMap の使い方まで身につける。

このレッスンに出てくる用語

意味があいまいなまま進んだ語は、ここから読み直せます。

  • 配列サイズ固定の同型データの集まり
  • リスト順序付きで複数の値を扱うデータ構造
  • コンパイルソースをバイトコードへ変換する処理
  • 引数位置引数=順番で渡す。
main.java
学習モード
エディタを読み込んでいます

メモ

ArrayList を使う

⌘S で保存