首頁 > Java > java教程 > 如何在 Java 中按多個欄位對物件清單進行排序?

如何在 Java 中按多個欄位對物件清單進行排序?

Linda Hamilton
發布: 2024-12-15 11:12:11
原創
842 人瀏覽過

How to Sort a List of Objects by Multiple Fields in Java?

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板