iT邦幫忙

2025 iThome 鐵人賽

DAY 11
0

新增排序功能在student manager class,在管理多筆資料時,排序可以讓資料更有結構:

依年齡排序:快速找出最小/最大年齡
依姓名排序:更方便查找

在 Java 裡,排序通常透過 Collections.sort() 或 List.sort() 搭配 Comparator 來完成。

Java 的 sort 方法

  1. Collections.sort(list):適用於 List (例如 ArrayList)。

需要元素本身 implements Comparable(例如 String、Integer 都有內建)。

範例:
ArrayList names = new ArrayList<>();
names.add("Tom");
names.add("Lily");
names.add("Eric");

Collections.sort(names); // 預設字母順序
System.out.println(names); // [Eric, Lily, Tom]

  1. List.sort(Comparator c):Java 8 之後新增的方法。

可以傳入 Comparator 物件,自訂排序規則。

範例:
ArrayList ages = new ArrayList<>();
ages.add(20);
ages.add(18);
ages.add(22);

ages.sort(Comparator.naturalOrder()); // 小到大
System.out.println(ages); // [18, 20, 22]

ages.sort(Comparator.reverseOrder()); // 大到小
System.out.println(ages); // [22, 20, 18]

  1. Comparator 的寫法

傳統匿名類別:
students.sort(new Comparator() {
@Override
public int compare(Student s1, Student s2) {
return s1.getAge() - s2.getAge();
}
});

Lambda 簡化:
students.sort((s1, s2) -> s1.getAge() - s2.getAge());

Method reference:
students.sort(Comparator.comparing(Student::getAge));

最後整合的實作:
https://ithelp.ithome.com.tw/upload/images/20250925/20178846gsxlWqgnLA.png
https://ithelp.ithome.com.tw/upload/images/20250925/20178846SABeiOAAIK.png


上一篇
Day 10:Day 10 學習筆記 — Remove Student功能
下一篇
Day 12:新增查詢功能跟手動選擇輸入動作功能;
系列文
Java 學生管理系統:打造可新增、刪除、修改、搜尋並保存資料的完整 CLI 應用12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言