Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaでArrayList(配列リスト)を昇順にソートするプログラムの書き方

この記事では、Javaを使ってArrayList(配列リスト)の要素を昇順にソートする方法を解説します。

リストとは、要素を順番に格納し、先頭から順にアクセスできる「順序付きコレクション」のことです。インデックスを指定して要素を挿入・更新・削除・検索するためのメソッドが用意されており、重複した要素を保持することもできます。

ソートの実行例

まず、今回作成するプログラムの動作イメージを確認しておきましょう。

入力:

入力リスト:[java, coding, is, fun]

出力:

ソート後のリスト:[coding, fun, is, java]

アルゴリズム

昇順ソートは、java.util.Collections クラスが提供する sort() メソッドを呼び出すだけで実現できます。処理の手順は以下の通りです。

ステップ1 - 処理を開始する
ステップ2 - ArrayList型の変数 input_list を宣言する
ステップ3 - リストに値を追加する
ステップ4 - Collections.sort() メソッドでリストをソートする
ステップ5 - 結果を表示する
ステップ6 - 処理を終了する

Collections.sort() は、要素の自然順序付け(文字列なら辞書順、数値なら小さい順)に従ってリストを昇順に並べ替えます。

サンプルコード1:mainメソッドにすべての処理を記述する場合

ここでは、リストの生成からソートまでの一連の操作を、すべて main メソッド内にまとめて記述します。

import java.util.*;
public class Demo {
    public static void main(String args[]){
        ArrayList<String> input_list = new ArrayList<String>();
        input_list.add("java");
        input_list.add("coding");
        input_list.add("is");
        input_list.add("fun");
        System.out.println("The list is defined as: " + input_list);
        Collections.sort(input_list);
        System.out.println("The sorted list is: " + input_list);
    }
}

出力結果

The list is defined as: [java, coding, is, fun]
The sorted list is: [coding, fun, is, java]

サンプルコード2:処理をメソッドに分割して記述する場合

続いて、ソート処理を独立したメソッドとして切り出し、オブジェクト指向らしい構造で記述する例を紹介します。処理を部品化することで、コードの再利用性と可読性が向上します。

import java.util.*;
public class Demo {
    static void sort(ArrayList<String> input_list){
        Collections.sort(input_list);
        System.out.println("The sorted list is: " + input_list);
    }
    public static void main(String args[]){
        ArrayList<String> input_list = new ArrayList<String>();
        input_list.add("java");
        input_list.add("coding");
        input_list.add("is");
        input_list.add("fun");
        System.out.println("The list is defined as: " + input_list);
        sort(input_list);
    }
}

出力結果

The list is defined as: [java, coding, is, fun]
The sorted list is: [coding, fun, is, java]

補足:降順でソートしたい場合

逆に降順(大きい順・辞書の逆順)で並べ替えたい場合は、第2引数に Comparator.reverseOrder() を渡します。

Collections.sort(input_list, Comparator.reverseOrder());

このように、Collections.sort() を使えば、ArrayListの並べ替えをわずか1行で実装できます。用途に応じて昇順・降順を使い分けてみてください。

  1. 【Python入門】リストの要素を降順に並べ替える方法をわかりやすく解説

    Pythonでは、リスト(配列)の要素を降順に並べ替えたい場合、sort()メソッドを使い、引数reverseにTrueを指定するだけで簡単に実現できます。 サンプルコード my_list = [44, 56, 42, 31, 11, 23, 78, 89, 9, 0] print(元のリスト:) print(my_list) my_list.sort(reverse = True) print(降順にソートした後のリスト:) print(my_list) 実行結果 元のリスト: [44, 56, 42, 31, 11, 23, 78, 89, 9, 0] 降順にソートした後のリスト: [89

  2. 【Python入門】リスト(配列)の要素を昇順に並べ替える方法|sortメソッドの使い方

    Pythonでリスト(配列)の要素を昇順に並べ替えたい場合は、sortメソッドを使います。sortメソッドはデフォルトで昇順にソートしてくれるため、引数を指定しなくても簡単に並べ替えが可能です。また、降順に並べ替えたい場合は、reverseパラメータにTrueを指定するだけで対応できます。以下に具体的な使用例を示します。サンプルコードmy_list = [44, 56, 42, 31, 11, 23, 78, 89, 9, 0] print(The list is :) print(my_list) my_list.sort() print(The list after sorting is