コース一覧
    Java入門:配列とコレクション
    List を走査する

    Java入門:配列とコレクション

    配列とコレクションの扱いを学び、複数のデータを安全に整理・検索・集計できるようにします。

    1
    配列
    01. 配列の基本5分
    02. 配列の要素にアクセス5分
    03. 配列を for で走査5分
    04. Javaで配列の合計・平均を求める方法(forループ)5分
    05. 配列の平均5分
    06. 配列の最大値5分
    07. 配列の線形探索12分
    08. 拡張 for ループ5分
    09. 配列クイズ5分
    10. 第 6 章 まとめクイズ5分
    2
    コレクション基礎
    01. ArrayList を使う5分
    02. List を走査する5分
    03. 要素の削除と検索5分
    04. HashMap の基本5分
    05. Map を走査する5分
    06. Set で重複を排除5分
    07. Collections クラスの便利メソッド5分
    08. コレクション基礎 まとめクイズ5分

    List を走査する

    i を増やしたいわけではない

    リストの中身を頭から見ていくとき、まず思いつくのは配列と同じインデックスのループです。

    Java

    ArrayList<String> names = new ArrayList<>();
    names.add("sato");
    names.add("suzuki");
    names.add("takahashi");
    
    for (int i = 0; i < names.size(); i++) {
        System.out.println(names.get(i));
    }

    動きますが、i は本当に欲しかったものでしょうか。やりたいのは全部の名前を表示することで、i はそのための道具にすぎません。しかも size() は配列の length と違ってメソッドなので () が要り、条件を <= と書けば最後の 1 周で IndexOutOfBoundsException が飛びます。位置そのものを使わないなら、i は書かないほうが安全です。

    拡張 for なら、インデックスは要らない

    Java 5 から使える拡張 for なら、インデックスを一切書かずに全要素を回せます。

    Java

    int total = 0;
    for (String name : names) {
        total += name.length();
    }
    System.out.println(total);  // 19

    for (String name : names) は「names の中身を 1 つずつ name という名前で取り出す」という意味です。get(i) の呼び出しも終了条件も消えました。リストが空なら 1 周も回らないので、空かどうかの確認を別に書く必要もありません。

    取り出す変数の型は、リストの山かっこの中と同じにします。ArrayList<Integer> を回すなら for (int n : list) と書けて、Integer から int への変換は Java が自動でやってくれます。

    diagram (will load when visible)

    集計用の箱は、ループの外に置く

    拡張 for でいちばん多い書き間違いは、集計用の変数をループの中で宣言してしまうことです。

    Java

    for (String name : names) {
        int total = 0;      // 毎回 0 に戻ってしまう
        total += name.length();
    }

    これだと 1 周ごとに total が作り直され、しかもループを抜けた時点で変数自体が消えています。足し込む先はループの前に用意して、ループの中では足すだけにします。箱は外、足し算は中、と覚えておくと間違えません。

    課題では、リストを自分で作ってから拡張 for で合計を求めます。途中で println を挟んで、値がちゃんと積み上がっているか確かめながら進めてください。

    要件

    1. メソッド内で ArrayList<Integer> を新しく作り、5, 10, 15, 20 の 4 つの値をこの順番で add すること
    2. 全要素の合計は 拡張 for (for (int n : list)) を使って計算すること
    3. 戻り値の型は int、戻り値は 50 になること

    ヒント

    `ArrayList` を使うには冒頭に `import java.util.ArrayList;` が必要です

    要素数は `list.size()`、`i` 番目の取り出しは `list.get(i)`、いずれもカッコ `()` を忘れないように

    拡張 for は `for (int n : list) { sum += n; }` の形。インデックスは書かなくて OK です

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

    関連レッスン

    • 要素の削除と検索

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

    • HashMap の基本

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

    • Map を走査する

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

    • Set で重複を排除

      Java の Set を使って、コレクションから重複した要素を取り除く方法を学びます。HashSet と LinkedHashSet と TreeSet の違い、Set ならではの API を整理しよう。

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

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

    • リスト順序付きで複数の値を扱うデータ構造
    • 配列サイズ固定の同型データの集まり
    • インデックスDB 検索を速くする索引
    • ループ繰り返し処理。矢印で戻すか専用記号で示す
    • メソッドクラスに属する関数
    • 終了条件再帰を止めるベースケース
    • 変数データに名前をつけて参照する仕組み
    • 戻り値呼び出し元への返答を表す点線矢印
    main.java
    エディタを読み込んでいます

    メモ

    List を走査する

    ⌘S で保存