创建需要排序对象
- /**
- * @author wangli
- * @create 2022-08-17 17:17
- */
- @Data
- public class TotalNumDto {
- @ApiModelProperty("工单总量")
- private Integer workNum;
-
- @ApiModelProperty("同比数")
- private Integer yoyNum;
-
- @ApiModelProperty("环比数")
- private Integer qoqNum;
- }
实现Comparator的compare方式实现排序
- @Test
- public void test2(){
- List
totalNumDtoList = new ArrayList<>(); - for (int i = 0; i < 3; i++) {
- TotalNumDto totalNumDto = new TotalNumDto();
- totalNumDto.setWorkNum(i*2+1);
- totalNumDtoList.add(totalNumDto);
- }
- System.out.println("排序前 = " + totalNumDtoList);
- Collections.sort(totalNumDtoList, new Comparator
() { - @Override
- public int compare(TotalNumDto o1, TotalNumDto o2) {
- //顺序
- //return o1.getWorkNum()-o2.getWorkNum();
- //逆序
- return o2.getWorkNum()-o1.getWorkNum();
- }
- });
- System.out.println("排序后 = " + totalNumDtoList);
- }
打印结果如下
排序前 = [
TotalNumDto(workNum=1, yoyNum=null, qoqNum=null),
TotalNumDto(workNum=3, yoyNum=null, qoqNum=null),
TotalNumDto(workNum=5, yoyNum=null, qoqNum=null)]
排序后 = [TotalNumDto(workNum=5, yoyNum=null, qoqNum=null),
TotalNumDto(workNum=3, yoyNum=null, qoqNum=null),
TotalNumDto(workNum=1, yoyNum=null, qoqNum=null)]
比较它的两个参数的顺序。返回负整数、零或正整数,因为第一个参数小于、等于或大于第二个
当compare方法返回1时需要交换这两个数的位置,通过算法循环从而达到不断交换位