java list集合元素根据某些字段排序
2024-09-18 22:45:08
一、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());
}
最新文章
- css两列自适应布局的多种实现方式及原理。
- ubuntu共享文件配置
- Selenium关键字驱动测试框架Demo(Java版)
- [转]angularjs 设置全局变量的3种方法
- [git]Git与Repo入门
- mysql 参数read_rnd_buffer_size的真正含义
- php微信开发(1):缓存access_token的方法
- 【转】IOS 计时器 NSTimer
- uva 11991 Easy Problem from Rujia Liu? vector+map
- POJ 3104 Drying 二分
- 基于wax的lua IOS插件开发
- MySQL之外键约束
- 转:如何让LoadRunner实现多个场景运行?
- GitHub客户端发布托管代码
- php header的使用,PHP常见header状态总结
- Xamarin.Forms 开发资源集合(复制)
- ArcGis 属性表.dbf文件使用Excel打开中文乱码的解决方法
- 文本编辑器vim和gedit
- es6合并数组...
- js判断IE浏览器及版本