Java 中按多個欄位對物件進行排序
按多個欄位對資料進行排序是程式設計中常見的操作。本問題探討如何依姓名字母順序和年齡對人員物件陣列進行排序。
使用Collections.sort 進行多字段排序
要實現此目的,我們可以利用Collections.sort 方法,它允許基於提供的比較器進行自訂排序。 Comparator 決定如何比較兩個對象,使我們能夠定義多字段排序策略。
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); }}); }
在此程式碼中,compare 方法首先比較兩個 person 物件的名稱(x1 和 x2) )。如果它們不同,則傳回 String.compareTo 方法的結果,指示哪個字串按字典順序較大。如果名稱相等,則使用 Integer 物件的compareTo 方法繼續比較年齡(x1 和 x2)。
透過使用此比較器策略,Collections.sort 方法將按字母順序對人員物件清單進行排序按姓名排序,如果姓名相同,則會進一步按年齡排序。
以上是如何在 Java 中按多個欄位對物件清單進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!