カテゴリ: Java 更新日: 2026/03/29

JavaのArrayListクラスとsortメソッドを完全解説!初心者でもわかるリストの並べ替え

sortメソッド
sortメソッド

先生と生徒の会話形式で理解しよう

生徒

「Javaでリスト内の要素を並べ替える方法ってありますか?」

先生

「はい、ArrayListクラスで要素を並べ替えるには、sortメソッドを使います。昇順や降順など、好きな順序で並べ替えられますよ。」

生徒

「好きな順序に並べ替えられるんですね!具体的にどうやって使うんですか?」

先生

「それでは、sortメソッドの基本的な使い方を見ていきましょう!」

1. ArrayListクラスとは?

「1. ArrayListクラスとは?」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

1. ArrayListクラスとは?
1. ArrayListクラスとは?

ArrayListは、Javaのコレクションフレームワークに属するクラスで、動的なサイズのリストを提供します。このクラスを使うことで、要素の追加や削除、並べ替えなど柔軟な操作が可能です。

以下は、ArrayListの基本的な使用例です。


import java.util.ArrayList;

public class ArrayListExample {
    public static void main(String[] args) {
        ArrayList<String> items = new ArrayList<>();
        items.add("Cherry");
        items.add("Apple");
        items.add("Banana");

        System.out.println("リストの内容: " + items);
    }
}

このコードでは、ArrayListを使用してリストを作成し、要素を追加しています。

2. sortメソッドとは?

2. sortメソッドとは?
2. sortメソッドとは?

sortメソッドは、リストの要素を並べ替えるためのメソッドです。このメソッドは、Comparatorを引数に取ることで、任意の順序で並べ替えを行えます。

以下は、sortメソッドを使用した基本的な例です。


import java.util.ArrayList;
import java.util.Collections;

public class SortMethodExample {
    public static void main(String[] args) {
        ArrayList<String> items = new ArrayList<>();
        items.add("Cherry");
        items.add("Apple");
        items.add("Banana");

        // 昇順に並べ替え
        Collections.sort(items);

        System.out.println("昇順に並べ替えたリスト: " + items);
    }
}

このコードでは、Collections.sortを使用してリスト内の要素を昇順に並べ替えています。

3. sortメソッドの特徴と注意点

3. sortメソッドの特徴と注意点
3. sortメソッドの特徴と注意点

sortメソッドを使用する際の特徴と注意点は以下の通りです。

  • デフォルトの昇順: 自然順序に基づいて並べ替えられます(Stringの場合は辞書順)。
  • Comparatorの使用: カスタムの並べ替え順序を指定するには、Comparatorを使用します。
  • インプレース操作: 並べ替えはリスト自体に直接適用され、新しいリストは作成されません。

以下は、カスタムのComparatorを使用した例です。


import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

public class SortWithComparatorExample {
    public static void main(String[] args) {
        ArrayList<String> items = new ArrayList<>();
        items.add("Cherry");
        items.add("Apple");
        items.add("Banana");

        // 降順に並べ替え
        items.sort(Comparator.reverseOrder());

        System.out.println("降順に並べ替えたリスト: " + items);
    }
}

この例では、Comparator.reverseOrderを使用してリストを降順に並べ替えています。

4. 実践例: 数値リストの並べ替え

「4. 実践例: 数値リストの並べ替え」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

4. 実践例: 数値リストの並べ替え
4. 実践例: 数値リストの並べ替え

数値が格納されたリストを昇順および降順に並べ替える例を示します。


import java.util.ArrayList;
import java.util.Collections;

public class NumericSortExample {
    public static void main(String[] args) {
        ArrayList<Integer> numbers = new ArrayList<>();
        numbers.add(42);
        numbers.add(7);
        numbers.add(13);

        // 昇順に並べ替え
        Collections.sort(numbers);
        System.out.println("昇順に並べ替えたリスト: " + numbers);

        // 降順に並べ替え
        numbers.sort(Collections.reverseOrder());
        System.out.println("降順に並べ替えたリスト: " + numbers);
    }
}

このコードでは、Collections.sortおよびreverseOrderを使用して数値リストを昇順と降順に並べ替えています。

5. カスタム条件での並べ替え

5. カスタム条件での並べ替え
5. カスタム条件での並べ替え

以下の例では、文字列の長さに基づいてリストを並べ替える方法を示します。


import java.util.ArrayList;
import java.util.Comparator;

public class CustomSortExample {
    public static void main(String[] args) {
        ArrayList<String> items = new ArrayList<>();
        items.add("Cherry");
        items.add("Apple");
        items.add("Banana");

        // 文字列の長さで並べ替え
        items.sort(Comparator.comparing(String::length));

        System.out.println("文字列の長さで並べ替えたリスト: " + items);
    }
}

このコードでは、Comparator.comparingを使用してリストをカスタム条件で並べ替えています。

6. sortメソッドとラムダ式

6. sortメソッドとラムダ式
6. sortメソッドとラムダ式

sortメソッドでは、Comparatorをラムダ式で簡潔に記述することもできます。これにより、コードをより短く分かりやすく書くことが可能です。

以下の例では、文字列をアルファベットの降順で並べ替えています。


import java.util.ArrayList;

public class SortLambdaExample {
    public static void main(String[] args) {
        ArrayList<String> items = new ArrayList<>();
        items.add("Cherry");
        items.add("Apple");
        items.add("Banana");

        // ラムダ式を使って降順に並べ替え
        items.sort((a, b) -> b.compareTo(a));

        System.out.println("降順に並べ替えたリスト: " + items);
    }
}

このようにラムダ式を使用すると、Comparatorをより簡潔に記述できます。

7. sortメソッドとListインターフェース

「7. sortメソッドとListインターフェース」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

7. sortメソッドとListインターフェース
7. sortメソッドとListインターフェース

sortメソッドは、ArrayListだけでなくListインターフェースを実装したクラスでも使用できます。

そのため、ArrayListだけでなく、さまざまなリスト構造で同じように並べ替え処理を行うことが可能です。


import java.util.List;
import java.util.ArrayList;
import java.util.Comparator;

public class ListSortExample {
    public static void main(String[] args) {
        List<String> items = new ArrayList<>();
        items.add("Cherry");
        items.add("Apple");
        items.add("Banana");

        items.sort(Comparator.naturalOrder());

        System.out.println("昇順に並べ替えたリスト: " + items);
    }
}

このように、List型として扱っていてもsortメソッドを利用できます。

8. sortメソッドと複数条件の並べ替え

8. sortメソッドと複数条件の並べ替え
8. sortメソッドと複数条件の並べ替え

Comparatorを組み合わせることで、複数の条件に基づいて並べ替えを行うこともできます。

例えば、文字列の長さで並べ替えた後に、同じ長さの文字列をアルファベット順に並べ替えるといった処理が可能です。


import java.util.ArrayList;
import java.util.Comparator;

public class MultiConditionSortExample {
    public static void main(String[] args) {
        ArrayList<String> items = new ArrayList<>();
        items.add("Cherry");
        items.add("Apple");
        items.add("Fig");
        items.add("Banana");

        items.sort(
            Comparator.comparing(String::length)
                      .thenComparing(Comparator.naturalOrder())
        );

        System.out.println("複数条件で並べ替えたリスト: " + items);
    }
}

このようにComparatorを連結することで、より細かい条件で並べ替えを行うことができます。

まとめ

まとめ
まとめ

本記事では、ArrayListクラスのsortメソッドを用いてリストを並べ替える方法について学びました。デフォルトの昇順だけでなく、Comparatorを使用して降順やカスタム条件での並べ替えも可能であることを理解しました。また、Collections.sortComparator.comparingといった便利な方法を活用することで、コードの可読性を高めつつ、柔軟な操作が行えることが分かりました。

例えば、数値リストや文字列リストを用途に応じて並べ替えたい場合、sortメソッドは非常に有用です。また、並べ替えの基準を自由に設定できるComparatorを使えば、カスタマイズした順序を実現できます。

以下はまとめとして、昇順と降順の並べ替えを行う簡単なコード例です。


import java.util.ArrayList;
import java.util.Collections;

public class SortSummaryExample {
    public static void main(String[] args) {
        ArrayList<Integer> numbers = new ArrayList<>();
        numbers.add(10);
        numbers.add(3);
        numbers.add(25);

        // 昇順に並べ替え
        Collections.sort(numbers);
        System.out.println("昇順: " + numbers);

        // 降順に並べ替え
        numbers.sort(Collections.reverseOrder());
        System.out.println("降順: " + numbers);
    }
}

このコードで、Collections.sortreverseOrderの使い方を再確認できます。これらを活用して、リスト操作を効率的に行いましょう。

先生と生徒の振り返り会話

生徒

「リストの並べ替えって簡単にできるんですね!昇順と降順だけじゃなくて、自由な条件も設定できるなんて驚きです。」

先生

「その通りです。並べ替えはプログラムの基本的な機能の1つなので、sortメソッドをしっかり活用してください。また、Comparatorを使えばさらに柔軟な操作が可能ですよ。」

生徒

「次はComparatorを使った複雑な並べ替えにも挑戦してみます!」

先生

「ぜひ試してください。sortメソッドを使いこなせると、リスト操作の幅が大きく広がりますよ。」

カテゴリの一覧へ
新着記事
New1
Spring
Spring Securityの新標準!SecurityFilterChainとHttpSecurity DSLの書き方を初心者向けに解説
更新記事
New2
Java
Javaの抽象クラス(abstract)を完全ガイド!継承と設計のルールを学ぶ
更新記事
New3
Servlet
JavaのGenericServletクラスのgetInitParameterNamesメソッドを徹底解説!初心者でもわかる初期化パラメータの取得方法
更新記事
New4
JSP
JSPとは何か?初心者向けにできること・仕組み・特徴をやさしく解説
更新記事
人気記事
No.1
Java&Spring記事人気No1
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Servlet
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
No.3
Java&Spring記事人気No3
Java
JavaのIOExceptionクラス徹底解説!初心者向けファイル入出力エラー対策ガイド
No.4
Java&Spring記事人気No4
Spring
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.5
Java&Spring記事人気No5
Java
Java開発環境「Eclipse(Pleiades)」のインストール方法とメリットを初心者向けに解説
No.6
Java&Spring記事人気No6
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.7
Java&Spring記事人気No7
Spring
Spring BootとVS Codeで開発を始めよう!拡張機能・launch.json・ホットリロードを丁寧に解説
No.8
Java&Spring記事人気No8
Spring
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門