HOWTO · Java

如何在 Java 中對陣列元素進行排序

本篇文章介紹瞭如何在 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() 方法來排序子陣列。這意味著我們可以將一個陣列中的一些元素從一個特定的索引排序到另一個特定的索引(結束索引)。這個方法需要三個引數,一個是陣列,第二個和第三個是要排序的陣列的開始和結束索引。請看下面的例子。

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