配列の要素を昇順・降順にソートする(sort)

配列に含まれている要素を昇順または降順にソートする方法を解説します。ソートは Arrays.sort メソッドを用いて行いますが、このメソッドでは昇順にしかソートできないので、降順にする場合は昇順でソートしたあとで逆順に並び替えます。

(Last modified: )

配列の要素を昇順にソートする

配列に格納されている要素をソートするには Arrays.sort メソッドを使用します。 sort はクラスメソッドとして定義されており、引数の型毎に異なるメソッドが定義されています。例えば int[] 型の値を引数に取る sort メソッドは次のように定義されています。

public static void sort(int[] a)

パラメータ:
a - ソートされる配列

1 番目の引数にソートする対象の配列を指定します。要素に格納されている値を数値の昇順でソートします。このメソッドの場合は対象の配列自体を並び替えます。

次のサンプルを見てください。

import java.util.Arrays;  // java.util.Arraysのインポートが必要です

int[] src = {12, 24, 18, 35, 21};
System.out.println(Arrays.toString(src));  // [12, 24, 18, 35, 21]

Arrays.sort(src);
System.out.println(Arrays.toString(src));  // [12, 18, 21, 24, 35]

対象の配列の要素が昇順でソートされました。

サンプルコード

それでは簡単なサンプルプログラムを作って試してみます。テキストエディタで次のように記述したあと、 JSample14-1.java という名前で保存します。

import java.util.Arrays;

class JSample14_1{
  public static void main(String[] args){
    int[] src = {12, 24, 18, 35, 21};
    System.out.println(Arrays.toString(src));

    Arrays.sort(src);
    System.out.println(Arrays.toString(src));
  }
}

コンパイルを行います。

javac -encoding UTF-8 JSample14_1.java

その後で、次のように実行してください。

java JSample14_1

配列の要素を昇順にソートする(1)

対象の配列の要素を昇順に並び替えました。

配列の要素を降順にソートする

Arrays.sort メソッドは昇順にソートすることしかできません。要素に格納されている値が基本データ型の場合は、他にメソッドも用意されていないので、昇順に並び替えたあとで手動で逆順に並び替えることで降順にソートを行います。

要素を逆順に並び替える方法は「配列の要素を逆順に並び替える」で解説した方法を使用します。次のサンプルを見てください。

import java.util.Arrays;  // java.util.Arraysのインポートが必要です

int[] src = {12, 24, 18, 35, 21};
System.out.println(Arrays.toString(src));  // [12, 24, 18, 35, 21]

Arrays.sort(src);

for (int f = 0, l = src.length - 1; f < l; f++, l--){
  int temp = src[f];
  src[f]  = src[l];
  src[l] = temp;
}

System.out.println(Arrays.toString(src));  // [35, 24, 21, 18, 12]

対象の配列の要素が降順でソートされました。

-- --

Arrays.fill メソッドを使って配列のすべての要素を指定した値で埋める方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。