Java | Comparator を使った実務例(ファイル名・日付でソートなど)

Java Java
スポンサーリンク

ここでは ユーザー入力(Scanner)で数値を受け取り、ソートして表示する完全な Java プロジェクト を示します。初心者でもそのままコピーして動かせる形にしています。


プロジェクト概要

  • ファイル名: SortNumbers.java
  • 機能:
    1. ユーザーから整数を入力して受け取る
    2. 昇順(小さい順)にソートして表示
    3. 降順(大きい順)にもソートして表示

完全なコード

import java.util.*;

public class SortNumbers {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("=== 数値ソートプログラム ===");
        System.out.print("いくつの数値を入力しますか?: ");
        int n = scanner.nextInt();  // 件数を入力

        // 数値を格納するリスト
        ArrayList<Integer> numbers = new ArrayList<>();

        System.out.println(n + " 個の整数を入力してください:");
        for (int i = 0; i < n; i++) {
            numbers.add(scanner.nextInt());
        }

        // 入力値を表示
        System.out.println("入力値: " + numbers);

        // 昇順ソート
        ArrayList<Integer> asc = new ArrayList<>(numbers);
        Collections.sort(asc);
        System.out.println("昇順: " + asc);

        // 降順ソート
        ArrayList<Integer> desc = new ArrayList<>(numbers);
        Collections.sort(desc, Comparator.reverseOrder());
        System.out.println("降順: " + desc);

        scanner.close();
    }
}
Java

実行例

入力

いくつの数値を入力しますか?: 5
5 個の整数を入力してください:
12 3 -7 100 42

出力

入力値: [12, 3, -7, 100, 42]
昇順: [-7, 3, 12, 42, 100]
降順: [100, 42, 12, 3, -7]

応用ポイント

  • 平均値や最大値を表示Collections.max() / Collections.min() を使う
  • 小数対応ArrayList<Double> に変更
  • 文字列ソートArrayList<String> にして Collections.sort()

これで「ユーザー入力 → ソート → 結果表示」の流れが一通り理解できます。

Java
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました