首頁  >  問答  >  主體

java如何對不同的類別物件進行排序

假設兩個類別A,B有共同的屬性date,我要對兩個List<A>, List<B>, 依照date進行排序,怎麼做比較好?

我知道的方法是寫一個基類,然後A和B繼承這個基類,然後再調用Collections.sort()排序.

請問有沒有更好的辦法,或是用反射寫一個類似的方法?亦或是有現成的函式庫可以使用?

学习ing学习ing2707 天前829

全部回覆(3)我來回復

  • 天蓬老师

    天蓬老师2017-06-14 10:54:58

    使用上面你說的是較好的方法,1.可以利用java本身提供的api減少了程式碼量,2.上面的方式在程式碼風格上也蠻好的。
    還有一個想法是
    將每A,B類的date提出來並與A,B物件本身建立關聯,例如實作一個類別Index,Index中有兩個屬性,date和A,B類物件的引用或者id,每個A,B類對象關聯一個Index對象,然後對Index對象排序,然後透過id找到對應A或B的對象,同index對像一樣的順序,即排好序。

    回覆
    0
  • 欧阳克

    欧阳克2017-06-14 10:54:58

    雷雷

    回覆
    0
  • typecho

    typecho2017-06-14 10:54:58

    1. 弄一個Base Class,A、B extends之

    2. 弄一個Interface,A、B implements之

    3. 弄一個List,然後sort之,Comparator裡面需要強轉型

    4. 弄一個Wrapper class,包裝A、B,然後放在List中,sort之

    5. 回覆
      0
    6. 取消回覆