Java で配列要素を並べ替える方法

Mohammad Irfan 2023年10月12日
  1. Java の sort() メソッドを用いた配列要素のソート
  2. Java で配列要素を並べ替える
  3. Java の parallelSort() メソッドを用いて配列の要素を並べ替える
  4. Java の parallelSort() メソッドを用いて配列の要素を並べ替える
  5. Java の parallelSort() メソッドを用いて配列の要素を並べ替える
Java で配列要素を並べ替える方法

このチュートリアルでは、Java で配列の要素をソートする方法と、それを理解するためのコード例を紹介します。

配列の要素をソートするには、Arrays.sort()sorted()parallelSort() メソッドなど、いくつかの方法があります。例を見てみましょう。

Java の sort() メソッドを用いた配列要素のソート

ここでは、Arrays クラスの sort() メソッドを用いて要素をソートします。このメソッドは昇順に要素をソートします。以下の例を参照してください。

import java.util.Arrays;

public class SimpleTesting {
  public static void main(String[] args) {
    int[] arr = new int[] {12, 3, 5, 21, 4, 85, 6, 9, 2, 1};
    for (int i : arr) {
      System.out.print(i + " ");
    }
    Arrays.sort(arr);
    System.out.println("\nAfter Sorting...");
    for (int i : arr) {
      System.out.print(i + " ");
    }
  }
}

出力:

12 3 5 21 4 85 6 9 2 1 
After Sorting...
1 2 3 4 5 6 9 12 21 85 

Java で配列要素を並べ替える

Java の組み込みメソッドを使用したくない場合は、このコードを使用して配列の要素を昇順にソートします。

public class SimpleTesting {
  public static void main(String[] args) {
    int[] arr = new int[] {12, 3, 5, 21, 4, 85, 6, 9, 2, 1};
    for (int i : arr) {
      System.out.print(i + " ");
    }
    for (int i = 0; i < arr.length; i++) {
      for (int j = 0; j < arr.length; j++) {
        if (arr[i] < arr[j]) {
          int temp = arr[i];
          arr[i] = arr[j];
          arr[j] = temp;
        }
      }
    }
    System.out.println("\nAfter Sorting...");
    for (int i : arr) {
      System.out.print(i + " ");
    }
  }
}

出力:

12 3 5 21 4 85 6 9 2 1 
After Sorting...
1 2 3 4 5 6 9 12 21 85 

Java の parallelSort() メソッドを用いて配列の要素を並べ替える

Java 8 以上のバージョンを使用している場合は、Arrays クラスの parallelSort() メソッドを利用することができます。このメソッドはマルチスレッド環境でのソートに便利です。以下の例を参照してください。

import java.util.Arrays;

public class SimpleTesting {
  public static void main(String[] args) {
    int[] arr = new int[] {12, 3, 5, 21, 4, 85, 6, 9, 2, 1};
    for (int i : arr) {
      System.out.print(i + " ");
    }
    Arrays.parallelSort(arr);
    System.out.println("\nAfter Sorting...");
    for (int i : arr) {
      System.out.print(i + " ");
    }
  }
}

出力:

12 3 5 21 4 85 6 9 2 1 
After Sorting...
1 2 3 4 5 6 9 12 21 85 

Java の parallelSort() メソッドを用いて配列の要素を並べ替える

Java には、部分配列をソートするためのオーバーロードされた parallelSort() メソッドが用意されています。これは配列の要素を特定のインデックスから別のインデックス(終了インデックス)まで並べ替えることができることを意味します。このメソッドは 3つの引数をとります。1つは配列、2つ目と 3つ目はソートする配列の開始インデックスと終了インデックスです。以下の例を参照してください。

import java.util.Arrays;

public class SimpleTesting {
  public static void main(String[] args) {
    int[] arr = new int[] {12, 3, 5, 21, 4, 85, 6, 9, 2, 1};
    for (int i : arr) {
      System.out.print(i + " ");
    }
    Arrays.parallelSort(arr, 0, 5);
    System.out.println("\nAfter Sorting...");
    for (int i : arr) {
      System.out.print(i + " ");
    }
  }
}

出力:

12 3 5 21 4 85 6 9 2 1 
After Sorting...
3 4 5 12 21 85 6 9 2 1 

Java の parallelSort() メソッドを用いて配列の要素を並べ替える

Java のストリーム機能を利用したい場合は、sorted() メソッドを利用して要素をソートし、toArray() を利用して要素を配列に集めます。

import java.util.Arrays;

public class SimpleTesting {
  public static void main(String[] args) {
    int[] arr = new int[] {12, 3, 5, 21, 4, 85, 6, 9, 2, 1};
    for (int i : arr) {
      System.out.print(i + " ");
    }
    arr = Arrays.stream(arr).sorted().toArray();
    System.out.println("\nAfter Sorting...");
    for (int i : arr) {
      System.out.print(i + " ");
    }
  }
}

出力:

12 3 5 21 4 85 6 9 2 1 
After Sorting...
1 2 3 4 5 6 9 12 21 85 

関連記事 - Java Array