文章详情页
java如何对不同的类对象进行排序
浏览:109日期: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. javascript - 原生canvas中如何获取到触摸事件的canvas内坐标?2. javascript - 移动端粘贴事件,onpaste事件在app中无效,在app中怎么监测到粘贴事件3. mac连接阿里云docker集群,已经卡了2天了,求问?4. javascript - 关于fullpage.js 自动高度失效的问题5. android - react-native 的headless.js Java API 的代码怎么使用?6. javascript - Express 和 request 如何代理远程图片?7. 如何使用git对word文档进行版本控制?8. javascript - 你们怎样实现前端分页的?9. pycharm运行python3.6突然出现R6034问题,请问如何处理?10. javascript - 如何使用loadash对[object,object,object]形式的数组进行比较
排行榜
