Java Arrays parallelSort(T[] a) 方法



描述

Java Arrays parallelSort(T[] a) 方法將指定的陣列物件按升序排序。此方法使用並行排序合併演算法,將陣列拆分為子陣列,對它們進行排序,然後合併以得到一個排序後的陣列。

宣告

以下是 java.util.Arrays.parallelSort(T[]) 方法的宣告

public static <T extends Comparable<? super T>> void parallelSort(T[] a)

型別引數

T − 要排序的物件的類。

引數

a − 要排序的陣列。

返回值

此方法不返回值。

異常

  • ClassCastException − 如果陣列包含無法相互比較的元素(例如,字串和整數)。

  • IllegalArgumentException − 如果發現數組元素的自然順序違反了 Comparable 合約。

Java Arrays parallelSort​(T[] array, int fromIndex, int toIndex) 方法

描述

Java Arrays parallelSort(T[], int fromIndex, int toIndex) 方法將給定陣列物件的指定範圍按升序排序。此方法使用並行排序合併演算法,將陣列拆分為子陣列,對它們進行排序,然後合併以得到一個排序後的陣列。

宣告

以下是 java.util.Arrays.parallelSort(T[], int fromIndex, int toIndex) 方法的宣告

public static <T extends Comparable<? super T>> void parallelSort​(T[] a, int fromIndex, int toIndex)

型別引數

T − 要排序的物件的類。

引數

  • array − 要排序的陣列。

  • fromIndex − 要排序的第一個元素的索引(包含)。

  • toIndex − 要排序的最後一個元素的索引(不包含)。

返回值

此方法不返回任何內容。

異常

  • IllegalArgumentException − 如果 fromIndex > toIndex 或發現數組元素的自然順序違反了 Comparable 合約。

  • ArrayIndexOutOfBoundsException − 如果 fromIndex < 0 或 toIndex > array.length

  • ClassCastException − 如果陣列包含無法相互比較的元素(例如,字串和整數)。

使用自定義比較器排序物件陣列示例

以下示例展示了 Java Arrays parallelSort(T[]) 方法的使用。首先,我們建立了一個物件陣列,列印了原始陣列。使用 parallelSort() 方法對陣列進行排序,然後列印結果。

package com.tutorialspoint;

import java.util.Arrays;

public class ArrayDemo {
   public static void main(String[] args) {
      // initialize unsorted array
      Student arr[] = { new Student(1, "Julie"), new Student(3, "Adam"), new Student(2, "Robert") };

      System.out.print("Original Array: [");
      // print the array
      for (int i = 0; i < arr.length; i++) {
         System.out.print(arr[i] + " ");
      }
      System.out.println("]");
     
      // sort the array
      Arrays.parallelSort(arr);

      System.out.print("Sorted Array: [");
      // print the array
      for (int i = 0; i < arr.length; i++) {
         System.out.print(arr[i] + " ");
      }
      System.out.println("]");
   }
}
class Student implements Comparable<Student> {
   int rollNo;
   String name;

   Student(int rollNo, String name){
      this.rollNo = rollNo;
      this.name = name;
   }

   @Override
   public String toString() {
      return "[ " + this.rollNo + ", " + this.name + " ]";
   }
   
   @Override
   public boolean equals(Object obj) {
      Student s = (Student)obj;
      return this.rollNo == s.rollNo && this.name.equalsIgnoreCase(s.name);
   }

   @Override
   public int compareTo(Student student) {
      return this.rollNo - student.rollNo;
   }
}

輸出

讓我們編譯並執行以上程式,這將產生以下結果:

Original Array: [[ 1, Julie ] [ 3, Adam ] [ 2, Robert ] ]
Sorted Array: [[ 1, Julie ] [ 2, Robert ] [ 3, Adam ] ]

使用自定義比較器排序物件陣列(指定範圍)示例

以下示例展示了 Java Arrays parallelSort(T[], int, int) 方法的使用。首先,我們建立了一個物件陣列,列印了原始陣列。使用 parallelSort() 方法對陣列進行排序,然後列印結果。

package com.tutorialspoint;

import java.util.Arrays;

public class ArrayDemo {
   public static void main(String[] args) {
      // initialize unsorted array
      Student arr[] = { new Student(1, "Julie"), new Student(3, "Adam"), new Student(2, "Robert") };

      System.out.print("Original Array: [");
      // print the array
      for (int i = 0; i < arr.length; i++) {
         System.out.print(arr[i] + " ");
      }
      System.out.println("]");
     
      // sort the array
      Arrays.parallelSort(arr, 0, arr.length);

      System.out.print("Sorted Array: [");
      // print the array
      for (int i = 0; i < arr.length; i++) {
         System.out.print(arr[i] + " ");
      }
      System.out.println("]");
   }
}
class Student implements Comparable<Student> {
   int rollNo;
   String name;

   Student(int rollNo, String name){
      this.rollNo = rollNo;
      this.name = name;
   }

   @Override
   public String toString() {
      return "[ " + this.rollNo + ", " + this.name + " ]";
   }
   
   @Override
   public boolean equals(Object obj) {
      Student s = (Student)obj;
      return this.rollNo == s.rollNo && this.name.equalsIgnoreCase(s.name);
   }

   @Override
   public int compareTo(Student student) {
      return this.rollNo - student.rollNo;
   }
}

輸出

讓我們編譯並執行以上程式,這將產生以下結果:

Original Array: [[ 1, Julie ] [ 3, Adam ] [ 2, Robert ] ]
Sorted Array: [[ 1, Julie ] [ 2, Robert ] [ 3, Adam ] ]

排序物件子陣列使用自定義比較器示例

以下示例展示了 Java Arrays parallelSort(T[], int, int) 方法的使用。首先,我們建立了一個物件陣列,列印了原始陣列。使用 parallelSort() 方法對子陣列進行排序,然後列印結果。

package com.tutorialspoint;

import java.util.Arrays;

public class ArrayDemo {
   public static void main(String[] args) {
      // initialize unsorted array
      Student arr[] = { new Student(3, "Adam"), new Student(1, "Julie"), new Student(2, "Robert") };

      System.out.print("Original Array: [");
      // print the array
      for (int i = 0; i < arr.length; i++) {
         System.out.print(arr[i] + " ");
      }
      System.out.println("]");
     
      // sort first two elements of the array 
      Arrays.parallelSort(arr, 0, 2);

      System.out.print("Sorted Array: [");
      // print the array
      for (int i = 0; i < arr.length; i++) {
         System.out.print(arr[i] + " ");
      }
      System.out.println("]");
   }
}
class Student implements Comparable<Student> {
   int rollNo;
   String name;

   Student(int rollNo, String name){
      this.rollNo = rollNo;
      this.name = name;
   }

   @Override
   public String toString() {
      return "[ " + this.rollNo + ", " + this.name + " ]";
   }
   
   @Override
   public boolean equals(Object obj) {
      Student s = (Student)obj;
      return this.rollNo == s.rollNo && this.name.equalsIgnoreCase(s.name);
   }

   @Override
   public int compareTo(Student student) {
      return this.rollNo - student.rollNo;
   }
}

輸出

讓我們編譯並執行以上程式,這將產生以下結果:

Original Array: [[ 3, Adam ] [ 1, Julie ] [ 2, Robert ] ]
Sorted Array: [[ 1, Julie ] [ 3, Adam ] [ 2, Robert ] ]
java_util_arrays.htm
廣告