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 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告