为了账号安全,请及时绑定邮箱和手机立即绑定

java如何对不同的类对象进行排序

java如何对不同的类对象进行排序

绝地无双 2019-03-01 10:56:59
假设两个类A,B有共同的属性date,我要对两个List<A>, List<B>, 按照date进行排序,怎么做比较好? 我知道的方法是写一个基类,然后A和B继承这个基类,然后再调用Collections.sort()排序. 请问有没有更好的办法,或者是使用反射写一个类似的方法?亦或是有现成的库可以使用?
查看完整描述

3 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

list.sort((l1,l2) -> l1.getDate().compareTo(l2.getDate()));
查看完整回答
反对 回复 2019-03-01
?
大话西游666

TA贡献1817条经验 获得超14个赞

使用上面你说的是较好的方法,1.可以利用java本身提供的api减少了代码量,2.上面的方式在代码风格上也蛮好的。
还有一种思路是
将每A,B类的date提出来并与A,B对象本身建立关联,比如实现一个类Index,Index中有两个属性,date和A,B类对象的引用或者id,每个A,B类对象关联一个Index对象,然后对Index对象排序,然后通过id找到对应A或B的对象,同index对象一样的顺序,即排好序。

查看完整回答
反对 回复 2019-03-01
?
慕田峪9158850

TA贡献1794条经验 获得超8个赞

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

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

  3. 弄一个List<Object>,然后sort之,Comparator里面需要强转类型

  4. 弄一个Wrapper class,包装A、B,然后放在List中,sort之

查看完整回答
反对 回复 2019-03-01
  • 3 回答
  • 0 关注
  • 698 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号