ここでは ユーザー入力(Scanner)で数値を受け取り、ソートして表示する完全な Java プロジェクト を示します。初心者でもそのままコピーして動かせる形にしています。
プロジェクト概要
- ファイル名:
SortNumbers.java - 機能:
- ユーザーから整数を入力して受け取る
- 昇順(小さい順)にソートして表示
- 降順(大きい順)にもソートして表示
完全なコード
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()
これで「ユーザー入力 → ソート → 結果表示」の流れが一通り理解できます。
