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