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]
相關用法
- Java Java lang.Long.lowestOneBit()用法及代碼示例
- Java Java lang.Long.numberOfTrailingZeros()用法及代碼示例
- Java Java lang.Long.highestOneBit()用法及代碼示例
- Java Java lang.Long.numberOfLeadingZeros()用法及代碼示例
- Java Java.util.Collections.rotate()用法及代碼示例
- Java Java.util.concurrent.Phaser用法及代碼示例
- Java Java.util.concurrent.RecursiveTask用法及代碼示例
- Java Java.util.function.BiPredicate用法及代碼示例
- Java Java lang.Long.reverse()用法及代碼示例
- Java Java lang.Long.builtcount()用法及代碼示例
- Java Java.util.function.IntPredicate用法及代碼示例
- Java Java.util.function.DoublePredicate用法及代碼示例
注:本文由純淨天空篩選整理自 Collections.sort() in Java with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。