在Java 中使用Comparator 進行排序
Java 的Comparator 介面是一個強大的工具,用於自訂集合的排序行為。超越預設的 Comparable 接口,它可以輕鬆地根據特定條件對資料進行排序。
理解Comparator 介面
Comparator 介面定義了一個方法,compare( ),它接受兩個物件並傳回一個整數:
比較器的使用
將比較器與集合,只需將Comparator 的實例作為第二個參數傳遞給集合排序方法(例如Collections .sort())。例如:
List<MyObject> myObjects = new ArrayList<>(); Collections.sort(myObjects, new MyComparator());
其中 MyComparator 實作了 Comparator
解決ClassCastException
在您提供的程式碼中,執行緒「main」java.lang中的異常發生.ClassCastException 錯誤是因為您的People 類別實作了Comparator介面而不是Comparable。若要解決此問題,請從 People 類別中刪除 Implements Comparator 行。
應建立一個單獨的 Comparator 類別來處理排序邏輯。例如:
public class PeopleComparator implements Comparator<People> { @Override public int compare(People p1, People p2) { return p1.getId() - p2.getId(); } }
並如下使用它:
Collections.sort(peps, new PeopleComparator());
附加註解
以上是如何使用Java的比較器介面進行自訂排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!