List排序(降序)
一、添加一个比较器
点击查看代码
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);
}
List排序(降序)的更多相关文章
- iOS之数组的排序(升序、降序及乱序)
#pragma mark -- 数组排序方法(升序) - (void)arraySortASC{ //数组排序 //定义一个数字数组 NSArray *array = @[@(3),@(4),@(2) ...
- c++ sort降序排序
sort是c++ STL中提供的一个函数模板,可以用来对多种类型进行排序. 默认是升序排序.它有两种使用方法: default (1) template <class RandomAccessI ...
- C语言链表中数组实现数据选择排序,升序、降序功能主要难点
链表排序讲解: head指针指向链表的头结点,是找到整个链表的唯一依据,如果head指针丢失,整个链表就找不到了. head存储的是第一个节点的地址,head->next存储的是第二个节点的地址 ...
- 怎么实现元素ol的降序排序显示
首先介绍一下什么是ol元素.这里直接引用MDN里面的定义:The HTML <ol> Element (or HTML Ordered List Element) represents a ...
- C# List.sort排序详解(多权重,升序降序)
很多人可能喜欢Linq的orderBy排序,可惜U3D里面linq在Ios上会报错,所以就必须使用list的排序. 其实理解了并不难 升序降序比较 sort有三种结果 1,-1,0分别是大,小,相等. ...
- 飘逸的python - 有的升序有的降序的情况下怎么多条件排序
之前在统计导出各区服玩家消费的时候需要进行升序降序混搭的多条件排序. 需求是这样的.区服从小到大排,如果区服相同,则按消费从大到小排. 实现方法是利用python的sort算法是稳定排序,对数据进行多 ...
- 现在输入 n 个数字, 以逗号, 分开; 然后可选择升或者 降序排序;
/* 现在输入 n 个数字, 以逗号, 分开: 然后可选择升或者 降序排序: */ import java.util.*; public class bycomma{ public static St ...
- java数组降序排序之冒泡排序
import java.util.Arrays;//必须加载 class Demo{ public static void main(String []args){ int[] arr={3,54,4 ...
- java中的选择排序之降序排列
import java.util.Arrays;//必须加载 class Demo{ public static void main(String []args){ int[] arr={3,54,4 ...
- python-冒泡排序,升序、降序
冒泡排序 这个算法的名字由来是因为越大的元素会经交换慢慢浮'到数列的顶端. 冒泡排序的基本思想:重复走访要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来,直到没有再需要交换,完成排序 ...
随机推荐
- nginx日志输出配置json格式
修改nginx配置文件 http { include mime.types; default_type application/octet-stream; charset utf-8; # 原有日志格 ...
- Vue实现拖拽穿梭框功能四种方式
一.使用原生js实现拖拽 点击打开视频讲解更加详细 <html lang="en"> <head> <meta charset="UTF-8 ...
- CentOS 7.9 安装 rocketmq-4.9.2
一.CentOS 7.9 安装 rocketmq-4.9.2 地址: https://rocketmq.apache.org https://github.com/apache/rocketmq ht ...
- Kafka之 API实战
Kafka之 API实战 一.环境准备 1)启动zk和kafka集群,在kafka集群中打开一个消费者 [hadoop1 kafka]$ bin/kafka-console-consumer.sh \ ...
- Go 互斥锁Mutex
Mutex是一个互斥锁,可以创建为其他结构体的字段:零值为解锁状态.Mutex类型的锁和线程无关,可以由不同的线程加锁和解锁.互斥锁的作用是保证共享资源同一时刻只能被一个 Goroutine 占用,一 ...
- SpringBoot 2.5.5整合轻量级的分布式日志标记追踪神器TLog
TLog能解决什么痛点 随着微服务盛行,很多公司都把系统按照业务边界拆成了很多微服务,在排错查日志的时候.因为业务链路贯穿着很多微服务节点,导致定位某个请求的日志以及上下游业务的日志会变得有些困难. ...
- wampServer配置WWW根目录遇到的坑
直接在官网下载之后开始安装,一切正常 打开使用,一切正常 设置WWW目录.坑了一波 按照的都是百度上的教程,设置httpd.conf 这里配置之后网页访问127.0.0.1 还是localhost都还 ...
- 用 VS Code 搞 Qt6:信号、槽,以及QObject
Qt 里面的信号(Signal)和槽(Slot)虽然看着像事件,但它实际上是用来在两个对象之间进行通信的.既然是通信,就会有发送者和接收者. 1.信号是发送者,触发时通过特有的关键字"emi ...
- VS2022连接Oracle数据库所需包和连接字符串
VS连接ORACLE数据库 l VS2022连接ORACLE数据库时,需要引入Oracle.ManagedDataAccess.Core包. l 引入方式:打开VS2022==>项目==&g ...
- Golang 和Python 几个小时前 几分钟 几天前的处理
在用golang爬虫的时候 总会遇到 10天前 10分钟前 刚刚这种很影响我们爬取正常事件 所以我写了个方法 来格式化这种事件 golang 版本 package utils import ( &qu ...