文章詳情頁
java如何對不同的類對象進行排序
瀏覽:89日期:2023-11-01 18:59:08
問題描述
假設兩個類A,B有共同的屬性date,我要對兩個List<A>, List<B>, 按照date進行排序,怎么做比較好?
我知道的方法是寫一個基類,然后A和B繼承這個基類,然后再調用Collections.sort()排序.
請問有沒有更好的辦法,或者是使用反射寫一個類似的方法?亦或是有現成的庫可以使用?
問題解答
回答1:使用上面你說的是較好的方法,1.可以利用java本身提供的api減少了代碼量,2.上面的方式在代碼風格上也蠻好的。還有一種思路是將每A,B類的date提出來并與A,B對象本身建立關聯,比如實現一個類Index,Index中有兩個屬性,date和A,B類對象的引用或者id,每個A,B類對象關聯一個Index對象,然后對Index對象排序,然后通過id找到對應A或B的對象,同index對象一樣的順序,即排好序。
回答2:list.sort((l1,l2) -> l1.getDate().compareTo(l2.getDate()));回答3:
弄一個Base Class,A、B extends之
弄一個Interface,A、B implements之
弄一個List<Object>,然后sort之,Comparator里面需要強轉類型
弄一個Wrapper class,包裝A、B,然后放在List中,sort之
標簽:
java
相關文章:
1. 小程序怎么加外鏈,語句怎么寫!求救新手,開文檔沒發現2. javascript - ...mapGetters和...mapState獲取到的state,怎么拿來在methods中操作?3. python - linux怎么在每天的凌晨2點執行一次這個log.py文件4. javascript - 在 vue里面用import引入js文件,結果為undefined5. 如何分別在Windows下用Winform項模板+C#,在MacOSX下用Cocos Application項目模板+Objective-C實現一個制作游戲的空的黑窗口?6. Java反射問題:為什么android.os.Message的recycleUnchecked方法不能通過反射獲取到?7. php如何獲取訪問者路由器的mac地址8. git - 使用淘寶npm安裝hexo出現問題?9. php - 微信開發驗證服務器有效性10. [python2]local variable referenced before assignment問題
排行榜
