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 用法相关推荐

  1. java8 reduce的用法_Java 8系列之Stream中万能的reduce用法说明

    reduce 操作可以实现从Stream中生成一个值,其生成的值不是随意的,而是根据指定的计算模型.比如,之前提到count.min和max方法,因为常用而被纳入标准库中.事实上,这些方法都是redu ...

  2. java8重写comparator,Java 8 Lambda : Comparator 示例

    Developer.java import java.math.BigDecimal; /** * Developer * * @author 三产 * @version 1.0 * @date 20 ...

  3. java comparator用法_Java Comparator thenComparingLong()用法及代码示例

    Java中Comparator接口的thenComparingLong(java.util.function.ToLongFunction)方法将返回字典顺序比较器,该函数具有提取Long排序键的函数 ...

  4. sortedmap java_Java SortedMap comparator()用法及代码示例

    java.util.SortedMap接口的comparator()方法用于返回用于对该映射中的键进行排序的比较器:如果此映射使用其键的自然顺序,则返回null. 用法: public Compara ...

  5. Java8 Optional类用法

    文章目录 API介绍 第一组 Optional(T value) empty() of(T value) ofNullable(T value) 第二组 orElse(T other),orElseG ...

  6. Comparable与Comparator用法详解

    简介: Comparable接口出自java.lang包,它有一个compareTo(Object obj)方法用来比较或排序 Comparator接口出自java.util包,它有一个compare ...

  7. Comparator用法中o1-o2的问题

    为什么o1-o2就是升序,o2-o1就是降序呢? 因为在comparator里面,-1代表小于,0代表等于,1代表大于 你这样写的话,应该只是按照长度排序吧 在进行比较的时候需要返回-1或者0,如果不 ...

  8. Java8 Stream的用法

    一.Stream的操作步骤: 1.创建Stream  从一个数据源,如集合.数组中获取流.  2.中间操作  一个操作的中间链,对数据源的数据进行操作.  3.终止操作  一个终止操作,执行中间操作链 ...

  9. Java8 List removeIf用法技巧

    文章目录 字符串切割 使用List.removeIf API 剔除元素 问题解决 我们在写业务代码时,经常需要截取字符串转成List,然后再通过一个自定义的规则去删减元素.通常使用的是 String. ...

最新文章

  1. 计算机二级在学校报还是外面报好,谁知道考计算机二级在哪个学校比较好啊?...
  2. Android 系统工具类SystemUtils
  3. Android绘制自定义控件,Android自定义控件绘制基本图形基础入门
  4. springboot 不同环境不同的配置
  5. 小程序开发 缓存的应用
  6. Base64与文件(docx)流的加密和解密
  7. android按钮对齐方式,表格行中三个按钮的对齐方式Android
  8. 量子计算机代表人物,量子力学究竟“可怕”在哪?科学家的怀疑或许是对的
  9. 分享一些不错的sql语句
  10. html5圆盘抽奖,HTML5 Canvas圆盘抽奖运用DEMO
  11. python读取特定单词_Python:如何从txt文件中的特定单词开始读取到文件结尾
  12. python批量查询高德地图经纬度(支持xlxs)
  13. 多多客api_蚂蚁星球(原好京客)(haojingke.com)- 做大京客,享大数据营销 - 拼多多API接口...
  14. java实习每周总结
  15. ICEM: 合并混合网格
  16. android 天气动态壁纸,动态桌面壁纸 安卓“墨迹天气”新版评测
  17. 计算机wordif函数,wordif函数怎么用
  18. python漂亮的gui_python开发的gui漂亮吗
  19. IFAHP直觉模糊层次分析法matlab
  20. win7计算机收藏夹位置,收藏夹位置,教您ie浏览器收藏夹的位置在哪

热门文章

  1. 浅谈execl函数的使用
  2. 可视化pytorch网络特征图
  3. 转行金融策略数据分析师:从萌新到职场老手的蜕变之旅
  4. 词法分析器java语言_词法分析器java版(java词法分析器)
  5. JAVA图像处理——高斯模糊
  6. 服务器培训协议,员工培训与服务器
  7. 51单片机之IO口扩展——74HC595芯片串行转并行实验
  8. matlab中图像强度归一化_MATLAB 图像归一化
  9. 怎样发量暴增_如何增加头发的发量
  10. module.exports exports