亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
首頁 > Java > java教程 > 正文

Java中如何使用Collections工具類實現(xiàn)排序

P粉602998670
發(fā)布: 2025-10-07 20:43:01
原創(chuàng)
584人瀏覽過
Collections.sort()可用于對List集合進行排序,支持自然排序和自定義排序。① 對Integer、String等實現(xiàn)Comparable的類型可直接排序;② 通過Comparator實現(xiàn)自定義排序,如按字符串長度或?qū)ο笞侄闻判?;?使用Collections.reverseOrder()實現(xiàn)降序排列。排序時需確保列表非null且可修改,否則拋出異常。

java中如何使用collections工具類實現(xiàn)排序

在Java中,Collections 工具類提供了多種對集合進行操作的靜態(tài)方法,其中排序功能非常常用。主要通過 Collections.sort() 方法來實現(xiàn)對列表(List)的排序。該方法適用于實現(xiàn)了 List 接口的集合,如 ArrayListLinkedList 等。

1. 使用 Collections.sort() 對基本類型包裝類排序

對于存儲基本數(shù)據(jù)類型包裝類(如 Integer、String)的列表,可以直接使用 Collections.sort() 進行升序排序。

  • Integer、Double、String 等類默認(rèn)實現(xiàn)了 Comparable 接口,因此支持自然排序。
  • 字符串按字典順序排序,數(shù)字按數(shù)值大小排序。

示例代碼:

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>
登錄后復(fù)制

2. 使用 Comparator 自定義排序規(guī)則

當(dāng)需要自定義排序邏輯時(例如按對象的某個字段排序),可以傳入一個 Comparator 作為參數(shù)給 Collections.sort()。

立即學(xué)習(xí)Java免費學(xué)習(xí)筆記(深入)”;

  • 適用于不支持自然排序的類,或需要非默認(rèn)排序方式的情況。
  • 可通過 Lambda 表達式簡化寫法(Java 8+)。

示例:對字符串按長度排序

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>
登錄后復(fù)制

3. 對自定義對象進行排序

假設(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 + ")";
}
登錄后復(fù)制

}

黑點工具
黑點工具

在線工具導(dǎo)航網(wǎng)站,免費使用無需注冊,快速使用無門檻。

黑點工具18
查看詳情 黑點工具

使用 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>
登錄后復(fù)制

4. 逆序排序

若要實現(xiàn)降序排列,可以使用 Collections.reverseOrder() 獲取逆序比較器。

示例:對整數(shù)列表降序排序

Collections.sort(numbers, Collections.reverseOrder());
System.out.println(numbers); // 輸出:[8, 5, 2, 1]
登錄后復(fù)制

也可以對自定義比較器取反:

Collections.sort(words, Collections.reverseOrder((a, b) -> a.length() - b.length()));
登錄后復(fù)制

基本上就這些。只要列表元素可比較,無論是自然順序還是自定義規(guī)則,Collections.sort() 都能靈活支持。注意集合必須是可變的且不為 null,否則會拋出異常。

以上就是Java中如何使用Collections工具類實現(xiàn)排序的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!

最佳 Windows 性能的頂級免費優(yōu)化軟件
最佳 Windows 性能的頂級免費優(yōu)化軟件

每個人都需要一臺速度更快、更穩(wěn)定的 PC。隨著時間的推移,垃圾文件、舊注冊表數(shù)據(jù)和不必要的后臺進程會占用資源并降低性能。幸運的是,許多工具可以讓 Windows 保持平穩(wěn)運行。

下載
來源:php中文網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn
最新問題
開源免費商場系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號