Java:配列の数字を小さいor大きい順に並べ替える(Arrays.sort)
※自分用学習メモです
Javaで配列を小さい順(昇順)と大きい順(降順)にソートする方法について、それぞれのコード例と使い方を説明します。
まとめ
Arrays.sort(配列) は、配列を昇順に並べ替えたいときに使います。
文字列の場合は辞書順、数値の場合は小さい順にソートされます。
降順にしたい場合は Collections.reverseOrder() を使います。
Arrays.sort の使い方のポイント
インポート: Arrays.sort() を使うには import java.util.Arrays; をインポートする必要があります。
並べ替え対象: Arrays.sort() メソッドに配列を渡すことで、その配列の要素を昇順に並べ替えます。配列は、文字列(String)、整数(int)、浮動小数点数(double)など、様々なデータ型で使うことができます。
昇順にソート: Arrays.sort() はデフォルトで配列を昇順に並べ替えます。
文字列の場合、辞書順(アルファベット順)に並べ替えられます。
整数の場合、値が小さい順に並べ替えられます。
1. 配列を小さい順(昇順)にソートするコード
コード例
import java.util.Arrays;
public class AscendingSortExample {
public static void main(String[] args) {
// 配列を定義
int[] array = {5, 3, 8, 1, 2};
// 配列を小さい順にソート
Arrays.sort(array);
// ソート後の配列を出力
System.out.println("昇順ソート:");
for (int num : array) {
System.out.print(num + " ");
}
}
}
使い方
Arrays.sort(array); を使うことで、配列 array の要素を小さい順にソートできます。
このメソッドは、配列内の数値を自動的に昇順に並べ替えます。
実行結果
昇順ソート:
1 2 3 5 8
2. 配列を大きい順(降順)にソートするコード
コード例
import java.util.Arrays;
import java.util.Collections;
public class DescendingSortExample {
public static void main(String[] args) {
// 配列を定義
Integer[] array = {5, 3, 8, 1, 2};
// 配列を大きい順にソート
Arrays.sort(array, Collections.reverseOrder());
// ソート後の配列を出力
System.out.println("降順ソート:");
for (int num : array) {
System.out.print(num + " ");
}
}
}
使い方
降順にソートするためには、配列を Integer[] 型に変更する必要があります。int[] 型の配列だと Collections.reverseOrder() を使えないためです。
Arrays.sort(array, Collections.reverseOrder()); を使うことで、配列 array の要素を大きい順にソートできます。
実行結果
降順ソート:
8 5 3 2 1
注意点
Arrays.sort() メソッドは、通常 int[] のような基本データ型の配列に対しては昇順にしか動作しません。降順にするためには Integer[] のようなラッパークラスの配列を使う必要があります。
Collections.reverseOrder() を使う際には Integer[] 型である必要があるので、必要に応じて型の変更を行ってください。
Arrays.sort の応用例
整数の配列を並べ替える
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] numbers = {5, 2, 8, 1, 3};
Arrays.sort(numbers);
for (int num : numbers) {
System.out.print(num + " "); // 出力: 1 2 3 5 8
}
}
}
降順に並べ替えたい場合
Arrays.sort() はデフォルトでは昇順にしか並べ替えられないので、降順に並べ替えたい場合は Collections.reverseOrder() を使って並べ替えます。
import java.util.Arrays;
import java.util.Collections;
public class Main {
public static void main(String[] args) {
// 配列を宣言
Integer[] numbers = {5, 2, 8, 1, 3};
// 降順に並べ替え
Arrays.sort(numbers, Collections.reverseOrder());
// 並べ替えた配列を出力
for (int num : numbers) {
System.out.print(num + " "); // 出力: 8 5 3 2 1
}
}
}
この記事が気に入ったらサポートをしてみませんか?