📜  Java中的 Collections.sort() 和示例

📅  最后修改于: 2022-05-13 01:55:43.772000             🧑  作者: Mango

Java中的 Collections.sort() 和示例

Java.util.Collections.sort()方法存在于Java.util.Collections 类中。它用于按升序对指定集合列表中存在的元素进行排序。
它的工作方式类似于Java.util.Arrays.sort() 方法,但它更好,因为它可以对 Array 的元素以及链表、队列以及其中的更多元素进行排序。

public static void sort(List myList)

myList : A List type object we want to sort.

This method doesn't return anything

例子:

Let us suppose that our list contains
{"Geeks For Geeks", "Friends", "Dear", "Is", "Superb"}

After using Collection.sort(), we obtain a sorted list as
{"Dear", "Friends", "Geeks For Geeks", "Is", "Superb"}

按升序对 ArrayList 进行排序

// Java program to demonstrate working of Collections.sort()
import java.util.*;
  
public class Collectionsorting
{
    public static void main(String[] args)
    {
        // Create a list of strings
        ArrayList al = new ArrayList();
        al.add("Geeks For Geeks");
        al.add("Friends");
        al.add("Dear");
        al.add("Is");
        al.add("Superb");
  
        /* Collections.sort method is sorting the
        elements of ArrayList in ascending order. */
        Collections.sort(al);
  
        // Let us print the sorted list
        System.out.println("List after the use of" +
                           " Collection.sort() :\n" + al);
    }
}

输出:

List after the use of Collection.sort() :
[Dear, Friends, Geeks For Geeks, Is, Superb]


按降序对 ArrayList 进行排序

// Java program to demonstrate working of Collections.sort()
// to descending order.
import java.util.*;
  
public class Collectionsorting
{
    public static void main(String[] args)
    {
        // Create a list of strings
        ArrayList al = new ArrayList();
        al.add("Geeks For Geeks");
        al.add("Friends");
        al.add("Dear");
        al.add("Is");
        al.add("Superb");
  
        /* Collections.sort method is sorting the
        elements of ArrayList in ascending order. */
        Collections.sort(al, Collections.reverseOrder());
  
        // Let us print the sorted list
        System.out.println("List after the use of" +
                           " Collection.sort() :\n" + al);
    }
}

输出:

List after the use of Collection.sort() :
[Superb, Is, Geeks For Geeks, Friends, Dear]


根据用户定义的标准对 ArrayList 进行排序。
为此,我们可以使用比较器接口。

// Java program to demonstrate working of Comparator
// interface and Collections.sort() to sort according
// to user defined criteria.
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
{
    // 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 ar = new ArrayList();
        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

输出 :

Unsorted
111 bbbb london
131 aaaa nyc
121 cccc jaipur

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

Arrays.sort() 与 Collections.sort()
Arrays.sort 适用于也可以是原始数据类型的数组。 Collections.sort() 适用于对象集合,如 ArrayList、LinkedList 等。

在创建给定数组项的 ArrayList 后,我们可以使用 Collections.sort() 对数组进行排序。

// Using Collections.sort() to sort an array
import java.util.*;
public class Collectionsort
{
    public static void main(String[] args)
    {
        // create an array of string objs
        String domains[] = {"Practice", "Geeks",
                             "Code", "Quiz"};
  
        // Here we are making a list named as Collist
        List colList =
            new ArrayList(Arrays.asList(domains));
  
        // Collection.sort() method is used here
        // to sort the list elements.
        Collections.sort(colList);
  
        // Let us print the sorted list
        System.out.println("List after the use of" +
                           " Collection.sort()  :\n" +
                           colList);
    }
}

输出:

List after the use of Collection.sort()  :
[Code, Geeks, Practice, Quiz]