Java 中的 Collections.reverseOrder() 及示例


Collections 反序類是一個反序方法,它在 Collections 類中編碼。它位於 java.util 包中。它返回一個比較器作為結果,本質上是一個預定義的比較器。透過使用此比較器包,我們可以以反序方式重新排列特定資料集的集合。Java reverseOrder() 有兩種不同的變體,可以根據其引數的容量進行定義。它們是:

  • Java Collections reverseOrder() 方法 - 用於獲取比較器類的值,該值可以對資料集的先前順序施加反序方式。它還實現了一個 Comparable 介面來執行此特定方法。

  • Java Collections reverseOrder(comp) 方法 - 用於獲取特定資料集的比較器類的值,並帶有一些指定的比較器。

public static Comparator reverseOrder()
Or;
public static <T> Comparator<T> reverseOrder()

要實現比較器類,我們需要牢記一些重要方面。

  • 引數 - 對於比較器類,排序將使用某些返回值反轉。該值也可以為 null。

  • 返回值型別 - 當我們在先前排序的集合上應用 Comparable 介面類時,使用者將獲得返回值。

Collections.reverseOrder() 類的演算法

在此可能的演算法中,我們將向您展示如何執行排序過程以使用 Collections 反序方法獲取特定 ArrayList 的反序。

  • 步驟 1 - 開始該過程

  • 步驟 2 - 匯入並定義一些 Java 類

  • 步驟 3 - 宣告並構造一個類,類名為 1

  • 步驟 4 - 提及輔助類

  • 步驟 5 - 宣告屬性

  • 步驟 6 - 提及構造器類

  • 步驟 7 - 顯示公共關鍵字以引用某些當前例項

  • 步驟 8 - 宣告 main 方法

  • 步驟 9 - 返回類 1 的值

  • 步驟 10 - 根據需要對後續類重複步驟 3 到 9

  • 步驟 11 - 建立一個空 ArrayList

  • 步驟 12 - 新增並填充整個資料集

  • 步驟 13 - 為未排序的值編寫顯示文字

  • 步驟 14 - 迭代方法

  • 步驟 15 - 使用一些不同的引數對列表進行排序

  • 步驟 16 - 顯示排序後的文字

  • 步驟 17 - 迭代迴圈

  • 步驟 18 - 按降序對資料集進行排序

  • 步驟 19 - 返回值

  • 步驟 20 - 終止該過程

Collections.reverseOrder() 類的語法

public class NAME {
	public static void main(String args[]) {
		//Declare the function and create a linked list object
		LinkedList<Integer> list = new LinkedList<Integer>();
		//Input some data into it
		list.add(7);
		list.add(16);
		list.add(10);
		list.add(-15);
	//Declare and create a comparator class to run the method of a reverse order
		Comparator<Integer> cmp = Collections.reverseOrder();
		//Perform the process of sorting with the particular list
		Collections.sort(list, cmp);
		System.out.println("List sorted in the ReverseOrder manner. Have a look:
		");
	for(int i : list) {
		System.out.println(i+ " ");
}

在此可能的語法中,我們嘗試向您展示如何宣告和建立集合類,以及如何使用 Collections 反序方法獲取其反序值。透過使用此特定語法,我們正在朝著與問題陳述相關的一些可能方法邁進。

遵循的方法

  • 方法 1 - Java 程式說明 Collections 類的 reverseOrder() 方法的工作原理,以使用降序方式對列表進行排序

  • 方法 2 - Java 程式演示 reverseOrder(Comparator c) 的工作原理,根據學號以降序對學生姓名進行排序,當存在使用者定義的比較器以執行反轉操作時

方法 1:以降序對列表進行排序

ReverseOder() 方法的使用

在此可能的方法中,我們將向您展示如何使用列表執行排序過程以以降序獲取所需的輸出。但在這種特定方法中,我們不能直接在陣列上使用 sort() 方法來以降序方式細化元素。此方法適用於陣列物件,例如 Integer 值,但不適用於 int 陣列,也稱為原始陣列。如果我們嘗試這樣做,該過程將返回一個異常,如下所示:

no suitable method has been found for sort (Array List <Integer>, Comparator
<Object>)
Arrays . sort (al, Collections . reverse Order());
It is not acceptable

示例 1

//Java Program to Illustrate The Working of a reverseOrder() method of the Collections class To sort a list by using the manner of descending order
import java.util.*;
public class ARBRDD {
   public static void main(String[] args){
      ArrayList<Integer> al = new ArrayList<Integer>();
      al.add(07);
      al.add(16);
      al.add(10);
      al.add(40);
      al.add(50);
      Collections.sort(al, Collections.reverseOrder());
      System.out.println(
         "List after the use of Collection.reverseOrder()"
         + " and Collections.sort() :\n" + al);
   }
}

輸出

List after the use of Collection.reverseOrder() and Collections.sort() :
[50, 40, 16, 10, 7]

在此特定的 Java 方法中,我們將構造並使用 Collections 類以降序方式對陣列進行排序。首先,我們將為該過程應用 Collections.sort 方法,併為進一步操作應用 Arrays.sort 函式。這是一種反向排序方式,我們還使用 Arrays.toString(arr) 方法來獲取所需的輸出。

示例 2

//Java Program to Demonstrate Working of reverseOrder() to Sort an Array in Descending Order
import java.util.*;
public class ARBRDD {
   public static void main(String[] args){
      Integer[] arr = { 30, 07, 16, 10 };
      Arrays.sort(arr, Collections.reverseOrder());
      System.out.println(
         "Array after the use of Collection.reverseOrder()"
         + " and Arrays.sort() :\n"
         + Arrays.toString(arr));
   }
}

輸出

Array after the use of Collection.reverseOrder() and Arrays.sort() :
[30, 16, 10, 7]

方法 2:以降序對陣列元素進行排序

ReverseOrder(Comparator c) 方法的使用

在此方法中,我們將使用比較器類以降序方式使用學號對來自學生資料來源的資料元素進行排序。為此,虛擬碼如下:

public static Comparator reverseOrder(Comparator c)

該過程將返回一個比較器作為值,該值可以將反序的值作為傳遞的比較器物件類強加,該類是使用者定義的比較器類。

示例

// Java Program to demonstrate the working of a reverseOrder(Comparator c) to sort the students name in descending order on the basis of roll numbers when there is a user defined comparator to perform the reverse operation
import java.io.*;
import java.lang.*;
import java.util.*;
class Student {
   int rollno;
   String name, address;
   public Student(int rollno, String name, String address){
      this.rollno = rollno;
      this.name = name;
      this.address = address;
   }
   public String toString(){
      return this.rollno + " " + this.name + " "
      + this.address;
   }
}
class Sortbyroll implements Comparator<Student> {
   public int compare(Student a, Student b){
      return a.rollno - b.rollno;
   }
}
public class ARBRDD {
   public static void main(String[] args){
      ArrayList<Student> ar = new ArrayList<Student>();
      ar.add(new Student(1610, "RDD", "KOL"));
      ar.add(new Student(131, "ARB", "DHAKA"));
      ar.add(new Student(121, "AGB", "GERMANY"));
      System.out.println("Unsorted List");
      for (int i = 0; i < ar.size(); i++)
      System.out.println(ar.get(i));
      Comparator c
      = Collections.reverseOrder(new Sortbyroll());
      Collections.sort(ar, c);
      System.out.println("\nSorted by the rollno");
      for (int i = 0; i < ar.size(); i++)
      System.out.println(ar.get(i));
   }
}

輸出

Unsorted List
1610 RDD KOL
131 ARB DHAKA
121 AGB GERMANY
Sorted by the rollno
1610 RDD KOL
131 ARB DHAKA
121 AGB GERMANY

結論

反轉操作是一個基於比較器的過程,它由 Java 環境中存在的 reverseOrder() 方法使用資料集上的 Comparable 介面執行。在本文中,我們學習瞭如何使用特定的比較器類反轉陣列的過程。透過上述邏輯、語法和演算法,我們嘗試構建一些 Java 程式碼以有效地解決問題陳述。

更新於: 2023-12-27

172 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告