首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 排序工具 Arrays.sort 與 Collections.sort 完整用法

     編輯:Java 相關知識

陣列排序:Arrays.sort

int[] arr = {1, 4, 6, 333, 8, 2};
Arrays.sort(arr);  // 升序,原地排序
// 結果:1, 2, 4, 6, 8, 333
  • 基本型別陣列:雙軸快速排序
  • 物件陣列:TimSort(穩定、O(n log n))
  • 支援 Comparator 客製化:Arrays.sort(arr, (a,b) -> b - a) 降序

集合排序:Collections.sort

List list = new ArrayList<>(Arrays.asList(1, 55, 9, 0, 2));
Collections.sort(list);  // 升序
// 降序
Collections.sort(list, (o1, o2) -> o2 - o1);
// 或
list.sort(Comparator.reverseOrder());

核心差異

特性Arrays.sortCollections.sort / List.sort
適用對象陣列List 實作
基本型別直接支援需裝箱
穩定性物件陣列穩定穩定
並行排序Arrays.parallelSort (JDK 8+)需自行並行流

自訂物件排序範例

record User(String name, int age) {}
List users = List.of(new User("Bob", 30), new User("Alice", 25));
users.sort(Comparator.comparing(User::age).thenComparing(User::name));
// 年齡升序,同齡按名字升序

效能提示

  • 大量資料優先 parallelSort 或 Stream 並行
  • 避免在 Comparator 執行昂貴運算,可先提取排序鍵
  • 基本型別陣列排序比 List 快(無裝箱開銷)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved