一、jdk1.6的环境下

  新建ComparatorSort类,并实现Comparator接口,重写compare方法

  降序排序:o1的元素>o2的元素,并返回-1;o1的元素小于o2的元素,并返回1

  升序排序:o1的元素>o2的元素,并返回1;o1的元素小于o2的元素,并返回-1

  在方法中可对多个元素进行判断。

  

import java.util.Comparator;

import app.component.app.entity.AppProjectContRankVo;

public class ComparatorSort implements Comparator<AppProjectContRankVo> {

    @Override
    public int compare(AppProjectContRankVo o1, AppProjectContRankVo o2) {
        if(o1.getOverdueRatio().compareTo(o2.getOverdueRatio())==1){
            return -1;
        }else if(o1.getOverdueRatio().compareTo(o2.getOverdueRatio())==-1){
            return 1;
        }else{
            return 0;
        }
    }
}

然后对需要排序的集合执行collections.sort

Collections.sort(conBalCountByOrgNoList,new ComparatorSort());

 

 

二、jdk1.8环境下

  可使用stream进行排序

 多条件排序使用:thenComparing
  降序排序使用:
reversed()
List<User> list = new ArrayList<User>();
        User user1 = new User();
        user1.setAge(19);
        user1.setScore(29);
        list.add(user1);
        User user2 = new User();
        user2.setAge(65);
        user2.setScore(322);
        list.add(user2);
        User user3 = new User();
        user3.setAge(19);
        user3.setScore(89);
        list.add(user3);
        List<User> listSort = list.stream().sorted(Comparator.comparing(User::getAge).reversed().thenComparing(User::getScore)).collect(Collectors.toList());
        for(User u:listSort){
            System.out.println(u.getAge()+"|"+u.getScore());
        }

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-29
  • 2021-11-14
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-06-07
  • 2021-05-16
  • 2021-09-28
  • 2021-07-20
相关资源
相似解决方案