一、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()); }