Collections.sort()可用于對List集合進行排序,支持自然排序和自定義排序。① 對Integer、String等實現(xiàn)Comparable的類型可直接排序;② 通過Comparator實現(xiàn)自定義排序,如按字符串長度或?qū)ο笞侄闻判?;?使用Collections.reverseOrder()實現(xiàn)降序排列。排序時需確保列表非null且可修改,否則拋出異常。
在Java中,Collections 工具類提供了多種對集合進行操作的靜態(tài)方法,其中排序功能非常常用。主要通過 Collections.sort()
方法來實現(xiàn)對列表(List)的排序。該方法適用于實現(xiàn)了 List
接口的集合,如 ArrayList
、LinkedList
等。
對于存儲基本數(shù)據(jù)類型包裝類(如 Integer、String)的列表,可以直接使用 Collections.sort()
進行升序排序。
Comparable
接口,因此支持自然排序。示例代碼:
import java.util.*; <p>List<Integer> numbers = new ArrayList<>(); numbers.add(5); numbers.add(2); numbers.add(8); numbers.add(1);</p><p>Collections.sort(numbers); System.out.println(numbers); // 輸出:[1, 2, 5, 8]</p>
當(dāng)需要自定義排序邏輯時(例如按對象的某個字段排序),可以傳入一個 Comparator
作為參數(shù)給 Collections.sort()
。
立即學(xué)習(xí)“Java免費學(xué)習(xí)筆記(深入)”;
示例:對字符串按長度排序
List<String> words = Arrays.asList("apple", "hi", "banana", "ok"); <p>Collections.sort(words, (a, b) -> a.length() - b.length()); System.out.println(words); // 輸出:[hi, ok, apple, banana]</p>
假設(shè)有一個 Student
類,包含姓名和年齡,希望按年齡排序。
class Student { String name; int age; <pre class='brush:java;toolbar:false;'>Student(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return name + "(" + age + ")"; }
}
使用 Collections.sort()
按年齡排序:
List<Student> students = new ArrayList<>(); students.add(new Student("Alice", 22)); students.add(new Student("Bob", 20)); students.add(new Student("Charlie", 23)); <p>Collections.sort(students, (s1, s2) -> s1.age - s2.age); System.out.println(students); // 輸出:[Bob(20), Alice(22), Charlie(23)]</p>
若要實現(xiàn)降序排列,可以使用 Collections.reverseOrder()
獲取逆序比較器。
示例:對整數(shù)列表降序排序
Collections.sort(numbers, Collections.reverseOrder()); System.out.println(numbers); // 輸出:[8, 5, 2, 1]
也可以對自定義比較器取反:
Collections.sort(words, Collections.reverseOrder((a, b) -> a.length() - b.length()));
基本上就這些。只要列表元素可比較,無論是自然順序還是自定義規(guī)則,Collections.sort() 都能靈活支持。注意集合必須是可變的且不為 null,否則會拋出異常。
以上就是Java中如何使用Collections工具類實現(xiàn)排序的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
每個人都需要一臺速度更快、更穩(wěn)定的 PC。隨著時間的推移,垃圾文件、舊注冊表數(shù)據(jù)和不必要的后臺進程會占用資源并降低性能。幸運的是,許多工具可以讓 Windows 保持平穩(wěn)運行。
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號