java list集合元素根据某些字段排序
一、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());
}
java list集合元素根据某些字段排序的更多相关文章
- JAVA实现按列表中元素的时间字段排序
JAVA代码实现按列表中元素的时间字段排序 导语: 工作中遇到一个问题,调用第三方接口返回的数据没有按时间倒序排列,测试说要加,然后在网上找到一个解决办法,这里记录一下 需求: 如下图列表,按生日进行 ...
- Java Map集合按照key和value排序之法
一.理论基点 Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等. TreeMap:基于红黑树(Red-Black-Tre ...
- Java:List集合内的对象进行排序
List集合中的对象进行排序,除了for外,还有java的Collections对象来对摸个集合进行排序的用法. 比如说我有一个List集合,集合元素为: public class TaskAutoE ...
- java数组集合元素的查找
java数组和集合的元素查找类似,下面以集合为例. 数组集合元素查找分为两类: 基本查找: 二分折半查找: 基本查找: 两种方式都是for循环来判断,一种通过索引值来判断,一种通过数组索引判断. 索引 ...
- Java依据集合元素的属性,集合相减
两种方法:1.集合相减可以使用阿帕奇的一个ListUtils.subtract(list1,list2)方法,这种方法实现必须重写集合中对象的属性的hashCode和equals方法,集合相减判断的会 ...
- java 判断集合元素唯一的原理
一 ArrayList的contains方法判断元素是否重复原理 ArrayList的contains方法会使用调用方法时,传入的元素的equals方法依次与集合中的旧元素 所比较,从而根据返回的布尔 ...
- Java基础知识强化之集合框架笔记47:Set集合之TreeSet保证元素唯一性和比较器排序的原理及代码实现(比较器排序:Comparator)
1. 比较器排序(定制排序) 前面我们说到的TreeSet的自然排序是根据集合元素的大小,TreeSet将它们以升序排列. 但是如果需要实现定制排序,比如实现降序排序,则要通过比较器排序(定制排序)实 ...
- java的list集合如何根据对象中的某个字段排序?
转自:http://blog.csdn.net/wangjuan_01/article/details/51351633 List集合按某个字段排序 package wjtest_01; import ...
- Java基础知识强化之集合框架笔记44:Set集合之TreeSet保证元素唯一性和自然排序的原理和图解
1. TreeSet保证元素唯一性和自然排序的原理和图解 2. TreeSet唯一性以及有序性底层剖析: 通过观察TreeSet的add()方法,我们知道最终要看TreeMap的put()方法. 跟踪 ...
随机推荐
- scau 17967 大师姐唱K的固有结界
17967 大师姐唱K的固有结界 该题有题解 时间限制:1000MS 内存限制:65535K 提交次数:41 通过次数:8 收入:107 题型: 编程题 语言: G++;GCC;VC Descr ...
- Oracle DataGuard日志传输
1. 日志传输方式 有两种日志传输方式(ARC和LGWR),第一种是采用ARC进程传输日志,其示意图如下: 注:上图来自<大话Oracle RAC> 其大致过程如下: 1)主库:日志先写入 ...
- Note:目录1
ylbtech-Note:目录1 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 6.返回顶部 作者:ylbtech出处:http://ylbtech ...
- 网易新闻实战 --- flask,ORM, Ajax异步删除
项目概述: 包含功能: 前端-- 新闻首页 新闻分类页 新闻详情页 后端-- 后台新闻管理(列表,分页) 新增新闻 修改新闻 删除新闻(AJAX)
- 继承Process类,计算累加和以及阶乘
#定义一个类 继承Process类 from multiprocessing import Process import os class Download(Process): def __init_ ...
- servlet--禁用浏览器缓存
禁用浏览器缓存:Cache-Control.pragma.expires response.setHeader("Cache-Control", "no-cache&qu ...
- 二维码生成器,基于python,segno库
import segno temp = input("Please enter value:") qr = segno.make(temp) qr.save("qrcod ...
- bfs(双向bfs加三维数组)
http://acm.hdu.edu.cn/showproblem.php?pid=2612 Find a way Time Limit: 3000/1000 MS (Java/Others) ...
- 观list.clear()方法 有感
一 . list.clear()底层源码实现 在使用list 结合的时候习惯了 list=null :在创建这样的方式,但是发现使用list的clear 方法很不错,尤其是有大量循环的时候 1.lis ...
- 数据仓库ETL案例学习(二)
来自案例学习 数据仓库经过ETL成功创建之后,就可以对数据仓库进行多维分析任务. 任务主要分为: 1.设置数据源,并添加分析时所需表到数据视图. 2.创建并设置维度. 3.设置时间维. 4.设置度量属 ...