Java 中的多字段排序
按多個字段對物件數組進行排序是編程中的常見需求。在這個問題中,我們希望按名稱和年齡對 Person 物件陣列進行排序。
解:
要達到此目的,我們可以利用集合。排序方法以及自訂比較器實作。比較器是定義兩個物件的比較邏輯的類別。在我們的例子中,我們需要一個比較器,首先根據姓名比較 Person 對象,然後根據年齡進行比較。
private static void order(List<Person> persons) { Collections.sort(persons, new Comparator() { public int compare(Object o1, Object o2) { String x1 = ((Person) o1).getName(); String x2 = ((Person) o2).getName(); int sComp = x1.compareTo(x2); if (sComp != 0) { return sComp; } Integer x1 = ((Person) o1).getAge(); Integer x2 = ((Person) o2).getAge(); return x1.compareTo(x2); }}); }
說明:
使用自訂比較器對清單進行排序後,清單將依姓名升序排序,同名內依年齡升序排序。
以上是如何按多個欄位(姓名和年齡)對 Java 物件陣列進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!