当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Collections.reverseOrder()用法及代码示例


java.util.Collections.reverseOrder()方法是java.util.Collections类的方法。

// Returns a comparator that imposes the reverse of 
// the natural ordering on a collection of objects
// that implement the Comparable interface. 
// The natural ordering is the ordering imposed by 
// the objects' own compareTo method
public static  Comparator reverseOrder()

我们可以由Collections.reverseOrder()返回的比较器以降序对列表进行排序。

// Java program to demonstrate working of Collections.reveseOrder() 
// to sort a list in descending order 
import java.util.*; 
  
public class Collectionsorting 
{ 
    public static void main(String[] args) 
    { 
        // Create a list of Integers 
        ArrayList<Integer> al = new ArrayList<Integer>(); 
        al.add(30); 
        al.add(20); 
        al.add(10); 
        al.add(40); 
        al.add(50); 
  
        /* Collections.sort method is sorting the 
        elements of ArrayList in descending order. */
        Collections.sort(al, Collections.reverseOrder()); 
  
        // Let us print the sorted list 
        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, 30, 20, 10]


我们可以使用这种方法Java - Arrays.sort()用法及代码示例也。

// Java program to demonstrate working of Collections.reveseOrder() 
// to sort an array in descending order 
import java.util.*; 
  
public class Collectionsorting 
{ 
    public static void main(String[] args) 
    { 
        // Create an array to be sorted in descending order. 
        Integer [] arr = {30, 20, 40, 10}; 
  
        /* Collections.sort method is sorting the 
        elements of arr[] in descending order. */
        Arrays.sort(arr, Collections.reverseOrder()); 
  
        // Let us print the sorted array 
        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():
[40, 30, 20, 10]


公共静态比较器reverseOrder(比较器c)

它返回一个Comparator,它对传递的Comparator对象施加相反的顺序。我们可以使用此方法以与用户定义的比较器相反的顺序对列表进行排序。例如,在下面的程序中,我们创建了一个反向的用户定义比较器,以按卷编号的降序对学生进行排序。
// Java program to demonstrate working of  
// reverseOrder(Comparator c) to sort students in descending 
// order of roll numbers when there is a user defined comparator 
// to do reverse. 
import java.util.*; 
import java.lang.*; 
import java.io.*; 
  
// A class to represent a student. 
class Student 
{ 
    int rollno; 
    String name, address; 
  
    // Constructor 
    public Student(int rollno, String name, 
                               String address) 
    { 
        this.rollno = rollno; 
        this.name = name; 
        this.address = address; 
    } 
  
    // Used to print student details in main() 
    public String toString() 
    { 
        return this.rollno + " " + this.name + 
                           " " + this.address; 
    } 
} 
  
class Sortbyroll implements Comparator<Student> 
{ 
    // Used for sorting in ascending order of 
    // roll number 
    public int compare(Student a, Student b) 
    { 
        return a.rollno - b.rollno; 
    } 
} 
  
// Driver class 
class Main 
{ 
    public static void main (String[] args) 
    { 
        ArrayList<Student> ar = new ArrayList<Student>(); 
        ar.add(new Student(111, "bbbb", "london")); 
        ar.add(new Student(131, "aaaa", "nyc")); 
        ar.add(new Student(121, "cccc", "jaipur")); 
  
        System.out.println("Unsorted"); 
        for (int i=0; i<ar.size(); i++) 
            System.out.println(ar.get(i)); 
  
        // Sorting a list of students in descending order of 
        // roll numbers using a Comparator that is reverse of 
        // Sortbyroll() 
        Comparator c = Collections.reverseOrder(new Sortbyroll()); 
        Collections.sort(ar, c); 
  
        System.out.println("\nSorted by rollno"); 
        for (int i=0; i<ar.size(); i++) 
            System.out.println(ar.get(i)); 
    } 
}

输出:

Unsorted
111 bbbb london
131 aaaa nyc
121 cccc jaipur

Sorted by rollno
131 aaaa nyc
121 cccc jaipur
111 bbbb london

参考文献:
https://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#reverseOrder()



相关用法


注:本文由纯净天空筛选整理自 Collections.reverseOrder() in Java with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。