Java | レベル別のArrayListを使ったソート練習問題

Java Java
スポンサーリンク

では、ArrayListを使ったソート練習問題をレベル別に作りました。配列より柔軟に扱えるので、実践的な練習になります。


レベル1(基礎:昇順ソート)

問題

ArrayList<Integer>{5, 2, 8, 1, 3} を入れて、昇順(小さい順)に並べ替えて表示してください。

ステップ解説

  1. ArrayList を作って数値を追加する。
  2. Collections.sort(list) を使う。
  3. 結果を表示する。

解答コード

import java.util.*;

public class Level1 {
    public static void main(String[] args) {
        ArrayList<Integer> nums = new ArrayList<>(Arrays.asList(5, 2, 8, 1, 3));
        Collections.sort(nums);
        System.out.println(nums); // [1, 2, 3, 5, 8]
    }
}
Java

レベル2(応用:降順ソート)

問題

ArrayList<Integer>{10, 4, 7, 2, 9} を入れて、降順(大きい順)に並べ替えて表示してください。

ステップ解説

  1. Collections.sort(list) で昇順に並べる。
  2. Collections.reverse(list) で逆順にする。

解答コード

import java.util.*;

public class Level2 {
    public static void main(String[] args) {
        ArrayList<Integer> nums = new ArrayList<>(Arrays.asList(10, 4, 7, 2, 9));
        Collections.sort(nums);       // 昇順
        Collections.reverse(nums);    // 逆順にする
        System.out.println(nums);     // [10, 9, 7, 4, 2]
    }
}
Java

レベル3(文字列ソート)

問題

ArrayList<String>{"Banana", "apple", "Orange", "grape"} を入れて、アルファベット順(A→Z)に並べ替えて表示してください。大文字小文字は区別しないこと。

ステップ解説

  1. Collections.sort(list, String.CASE_INSENSITIVE_ORDER) を使う。
  2. 結果を表示する。

解答コード

import java.util.*;

public class Level3 {
    public static void main(String[] args) {
        ArrayList<String> fruits = new ArrayList<>(Arrays.asList("Banana", "apple", "Orange", "grape"));
        Collections.sort(fruits, String.CASE_INSENSITIVE_ORDER);
        System.out.println(fruits); // [apple, Banana, grape, Orange]
    }
}
Java

レベル4(Comparatorで降順)

問題

ArrayList<Integer>{15, 3, 27, 9, 12} を入れて、Comparatorを使って降順に並べ替えてください。

ステップ解説

  1. Collections.sort(list, Comparator.reverseOrder()) を使う。
  2. 結果を表示する。

解答コード

import java.util.*;

public class Level4 {
    public static void main(String[] args) {
        ArrayList<Integer> nums = new ArrayList<>(Arrays.asList(15, 3, 27, 9, 12));
        Collections.sort(nums, Comparator.reverseOrder());
        System.out.println(nums); // [27, 15, 12, 9, 3]
    }
}
Java

レベル5(チャレンジ:オブジェクトソート)

問題

生徒の名前と点数を持つクラス Student を作り、ArrayList<Student> を「点数の高い順」に並べ替えて表示してください。

ステップ解説

  1. Student クラスを作り、namescore を持たせる。
  2. ArrayList<Student> にデータを入れる。
  3. Collections.sort(list, Comparator.comparing(Student::getScore).reversed()) を使う。

解答コード

import java.util.*;

class Student {
    String name;
    int score;
    Student(String name, int score) {
        this.name = name;
        this.score = score;
    }
    public int getScore() { return score; }
    public String toString() { return name + ":" + score; }
}

public class Level5 {
    public static void main(String[] args) {
        ArrayList<Student> students = new ArrayList<>();
        students.add(new Student("Sato", 70));
        students.add(new Student("Tanaka", 85));
        students.add(new Student("Suzuki", 60));
        students.add(new Student("Kato", 90));

        Collections.sort(students, Comparator.comparing(Student::getScore).reversed());
        System.out.println(students); 
        // 出力: [Kato:90, Tanaka:85, Sato:70, Suzuki:60]
    }
}
Java

✨ まとめ

  • レベル1: 昇順(基本)
  • レベル2: 降順(reverse)
  • レベル3: 文字列(大小無視)
  • レベル4: Comparatorで降順
  • レベル5: オブジェクトのソート

これで、配列から一歩進んで ArrayListのソート を段階的に練習できます。

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