假設兩個類別A,B有共同的屬性date,我要對兩個List<A>, List<B>, 依照date進行排序,怎麼做比較好?
我知道的方法是寫一個基類,然後A和B繼承這個基類,然後再調用Collections.sort()排序.
請問有沒有更好的辦法,或是用反射寫一個類似的方法?亦或是有現成的函式庫可以使用?
使用上面你說的是較好的方法,1.可以利用java本身提供的api減少了程式碼量,2.上面的方式在程式碼風格上也蠻好的。 還有一個想法是將每A,B類的date提出來並與A,B物件本身建立關聯,例如實作一個類別Index,Index中有兩個屬性,date和A,B類物件的引用或者id,每個A,B類對象關聯一個Index對象,然後對Index對象排序,然後透過id找到對應A或B的對象,同index對像一樣的順序,即排好序。
雷雷
弄一個Base Class,A、B extends之
弄一個Interface,A、B implements之
弄一個List,然後sort之,Comparator裡面需要強轉型
弄一個Wrapper class,包裝A、B,然後放在List中,sort之
使用上面你說的是較好的方法,1.可以利用java本身提供的api減少了程式碼量,2.上面的方式在程式碼風格上也蠻好的。
還有一個想法是
將每A,B類的date提出來並與A,B物件本身建立關聯,例如實作一個類別Index,Index中有兩個屬性,date和A,B類物件的引用或者id,每個A,B類對象關聯一個Index對象,然後對Index對象排序,然後透過id找到對應A或B的對象,同index對像一樣的順序,即排好序。
雷雷
弄一個Base Class,A、B extends之
弄一個Interface,A、B implements之
弄一個List
弄一個Wrapper class,包裝A、B,然後放在List中,sort之