Java8 的 Comparator 用法
java1.8 的新的函数式的 Comparator 不要太方便了. 可以轻松的实现各种List 的排序, 比以前写什么匿名的内部类, 静态类方便了很多, 很多.
//比较器
//按照sort_id 的升序排
//写法1
Comparator<ApplyedPersonVO> c = (a, b) -> a.getSort_id().compareTo(b.getSort_id());
//写法2
Comparator<ApplyedPersonVO> c2=Comparator.comparing(ApplyedPersonVO::getSort_id);
//写法3
Comparator<ApplyedPersonVO> c3=Comparator.comparing(a->a.getSort_id());//默认是升序
Collections.sort(coniditionVOS, Comparator.comparing(ApprovalPersonVO.ConiditionVO::getCondtion_value));//加上reversed()就是降序了Collections.sort(coniditionVOS, Comparator.comparing(ApprovalPersonVO.ConiditionVO::getCondtion_value).reversed());//演示的示例//升序
List<Integer> list = Arrays.asList(1, 4, 2, 6, 2, 8);
list.sort(Comparator.naturalOrder());//降序
List<Integer> list = Arrays.asList(1, 4, 2, 6, 2, 8);
list.sort(Comparator.reverseOrder());List<Computer> list = new ArrayList<>();
list.add(new Computer("xiaomi",4000,6));
list.add(new Computer("sony",5000,4));
list.add(new Computer("dell",4000,5));
list.add(new Computer("mac",6000,8));list.add(new Computer("micro",5000,6));
// 先以价格(升序)、后再速度(升序)
list.sort(Comparator.comparingInt(Computer::getPrice).thenComparingInt(Computer::getSpeed));
// 先以速度(降序)、后再价格(升序)
list.sort(Comparator.comparingInt(Computer::getSpeed).reversed().thenComparingInt(Computer::getPrice));
// 先以价格(降序)、后再速度(降序)
list.sort(Comparator.comparingInt(Computer::getPrice).thenComparingInt(Computer::getSpeed).reversed());@Data
public static class Computer {private String name;private Integer price;private Integer speed;
}
源码是:
import java.util.Comparator;public class Demo {public static void main(String[] args) {Comparator<TimetableInfo> c = Comparator.comparing(TimetableInfo::getTotalTime);}}
编译之后是:
Java8 的 Comparator 用法相关推荐
- java8 reduce的用法_Java 8系列之Stream中万能的reduce用法说明
reduce 操作可以实现从Stream中生成一个值,其生成的值不是随意的,而是根据指定的计算模型.比如,之前提到count.min和max方法,因为常用而被纳入标准库中.事实上,这些方法都是redu ...
- java8重写comparator,Java 8 Lambda : Comparator 示例
Developer.java import java.math.BigDecimal; /** * Developer * * @author 三产 * @version 1.0 * @date 20 ...
- java comparator用法_Java Comparator thenComparingLong()用法及代码示例
Java中Comparator接口的thenComparingLong(java.util.function.ToLongFunction)方法将返回字典顺序比较器,该函数具有提取Long排序键的函数 ...
- sortedmap java_Java SortedMap comparator()用法及代码示例
java.util.SortedMap接口的comparator()方法用于返回用于对该映射中的键进行排序的比较器:如果此映射使用其键的自然顺序,则返回null. 用法: public Compara ...
- Java8 Optional类用法
文章目录 API介绍 第一组 Optional(T value) empty() of(T value) ofNullable(T value) 第二组 orElse(T other),orElseG ...
- Comparable与Comparator用法详解
简介: Comparable接口出自java.lang包,它有一个compareTo(Object obj)方法用来比较或排序 Comparator接口出自java.util包,它有一个compare ...
- Comparator用法中o1-o2的问题
为什么o1-o2就是升序,o2-o1就是降序呢? 因为在comparator里面,-1代表小于,0代表等于,1代表大于 你这样写的话,应该只是按照长度排序吧 在进行比较的时候需要返回-1或者0,如果不 ...
- Java8 Stream的用法
一.Stream的操作步骤: 1.创建Stream 从一个数据源,如集合.数组中获取流. 2.中间操作 一个操作的中间链,对数据源的数据进行操作. 3.终止操作 一个终止操作,执行中间操作链 ...
- Java8 List removeIf用法技巧
文章目录 字符串切割 使用List.removeIf API 剔除元素 问题解决 我们在写业务代码时,经常需要截取字符串转成List,然后再通过一个自定义的规则去删减元素.通常使用的是 String. ...
最新文章
- 计算机二级在学校报还是外面报好,谁知道考计算机二级在哪个学校比较好啊?...
- Android 系统工具类SystemUtils
- Android绘制自定义控件,Android自定义控件绘制基本图形基础入门
- springboot 不同环境不同的配置
- 小程序开发 缓存的应用
- Base64与文件(docx)流的加密和解密
- android按钮对齐方式,表格行中三个按钮的对齐方式Android
- 量子计算机代表人物,量子力学究竟“可怕”在哪?科学家的怀疑或许是对的
- 分享一些不错的sql语句
- html5圆盘抽奖,HTML5 Canvas圆盘抽奖运用DEMO
- python读取特定单词_Python:如何从txt文件中的特定单词开始读取到文件结尾
- python批量查询高德地图经纬度(支持xlxs)
- 多多客api_蚂蚁星球(原好京客)(haojingke.com)- 做大京客,享大数据营销 - 拼多多API接口...
- java实习每周总结
- ICEM: 合并混合网格
- android 天气动态壁纸,动态桌面壁纸 安卓“墨迹天气”新版评测
- 计算机wordif函数,wordif函数怎么用
- python漂亮的gui_python开发的gui漂亮吗
- IFAHP直觉模糊层次分析法matlab
- win7计算机收藏夹位置,收藏夹位置,教您ie浏览器收藏夹的位置在哪