List排序(降序)
2024-09-08 13:34:33
一、添加一个比较器
点击查看代码
import java.util.Comparator;
/**
* @Classname ComparatorResultType
* @Description 排序比较器(金牌师傅推荐-分页中使用)
* @Date 2022/3/10 11:19
* @Created by 小郭
*/
public class ComparatorResultType implements Comparator {
@Override
public int compare(Object arg0, Object arg1) {
//MasterPageVO是查询数据的实体类,自己根据业务替换掉
MasterPageVO masterPageVO0=(MasterPageVO)arg0;
MasterPageVO masterPageVO1=(MasterPageVO)arg1;
//首先比较主指标,如果主指标相同,则比较次指标
int flag=masterPageVO0.getScore().compareTo(masterPageVO1.getScore());
if(flag==0){
return masterPageVO0.getOrderCount().compareTo(masterPageVO1.getOrderCount());
}else{
return flag;
}
}
}
二、业务代码
点击查看代码
@Override
public PageData<MasterPageVO> getMasterPage(Map<String, Object> params) {
List<MasterPageVO> voList=masterWorkerDao.getMasterPage(params);
if (voList.size()>0 && !voList.isEmpty()) {
for (MasterPageVO vo : voList) {
//查询师傅拥有的服务
List<MasterWorkerServiceTypeVO> serviceList = masterWorkerServiceTypeDao.getServiceByMasterWorkerId(Long.parseLong(vo.getId()));
if (serviceList.size() > 0) {
vo.setServiceList(serviceList);
}
//查询印象评价标签列表
List<ImpressionEvaluationVO> impressionEvaluationVOList = masterWorkerDao.getImpressionEvaluationList(Long.parseLong(vo.getId()));
if (impressionEvaluationVOList.size() > 0) {
vo.setImpressionEvaluationVOList(impressionEvaluationVOList);
}
//查询评分(总评分数/接单量)
ScoreDetailVO scoreDetailVO = masterWorkerDao.getScoreTotal(Long.parseLong(vo.getId()));
if (scoreDetailVO.getScoreTotal() != null && scoreDetailVO.getOrderCount() != null) {
vo.setScore(Integer.parseInt(scoreDetailVO.getScoreTotal()) / Integer.parseInt(scoreDetailVO.getOrderCount()));
vo.setOrderCount(Integer.parseInt(scoreDetailVO.getOrderCount()));
} else {
vo.setScore(0);
vo.setOrderCount(0);
}
}
//根据分数降序排序
ComparatorResultType comparator=new ComparatorResultType();
//正常排序
Collections.sort(voList, comparator);
//进行降序
Collections.reverse(voList);
}
return getPageData(voList, voList.size(), MasterPageVO.class);
}
最新文章
- mysql启动报错The server quit without updating PID file
- C#复习②
- XtraFinder在OSX10.11的使用
- BSON 1.0版本规范(翻译)
- crontab任务取消发送邮件
- Java中的异常处理(一)
- [Effective C++ --019]设计class犹如设计type
- 白书P61 - 点集配对问题
- Net::OpenSSH 使用例子
- Ubuntu环境变量——系统变量和用户变量
- Lucene中的 Query对象
- 基于JAVA语言的多线程技术
- 关于";模块计算机类型与目标计算机类型冲突";的解决
- Effective Java 第三版——33. 优先考虑类型安全的异构容器
- gradle入门(1-4)多项目构建实战
- sql语句可以截取指定字段后面的字符串
- NLP入门(五)用深度学习实现命名实体识别(NER)
- codeforces651----A. Joysticks
- 网络Socket编程UDP协议例子
- nginx静态资源缓存策略配置