當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java Collections.sort()用法及代碼示例


java.util.Collections.sort()方法存在於java.util.Collections類中。它用於按升序對出現在Collection的指定列表中的元素進行排序。
它的工作原理類似於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<String> al = new ArrayList<String>(); 
        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<String> al = new ArrayList<String>(); 
        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<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)); 
  
        Collections.sort(ar, new Sortbyroll()); 
  
        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
111 bbbb london
121 cccc jaipur
131 aaaa nyc

陣列.sort()vs 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]


相關用法


注:本文由純淨天空篩選整理自 Collections.sort() in Java with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。