Java Comparator comparingInt() 的使用
comparingInt
- comparingInt
- 自定义排序参数
- 优先队列,重写比较器
- 后序
comparingInt
static <T> Comparator<T> comparingInt(ToIntFunction<? super T> keyExtractor)
接受提取的一个函数int从类型分类键T ,并返回一个Comparator ,通过该排序关键字进行比较。
如果指定的功能也可串行化,则返回的比较器是可序列化的。 (摘自API)
参数类型
T - 要比较的元素的类型参数
keyExtractor - 用于提取整数排序键的函数结果
比较器,其被提取的密钥进行比较异常
NullPointerException - 如果参数为空
API Note:
例如,要获得一个Comparator ,它比较了Person对象的姓氏,
> Comparator<Person> byLastName = Comparator.comparing(Person::getLastName);
自定义排序参数
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;// 重写比较器
class Persons implements Comparable<Persons> {String name;int age;public Persons(String name, int age) {this.name = name;this.age = age;}// 定义此方法接受单个参数keyExtractor,该参数是用于提取整数排序键的函数。public int getAge() {return this.age;}// 按姓氏ASCII降序,反过来升序@Overridepublic int compareTo(Persons o) {return this.name.compareTo(o.name);}
}public class ComparatorTest {public static void main(String[] args) {// create some Persons objectsPersons p1 = new Persons("B", 10);Persons p2 = new Persons("D", 20);Persons p3 = new Persons("A", 18);// before sortList<Persons> list = Arrays.asList(p2, p1, p3);System.out.println("Before Sort:");list.forEach(Persons -> System.out.println("Persons name"+Persons.name));// 自定义比较器Comparator<Persons> byAge = Comparator.comparingInt(Persons::getAge);Collections.sort(list, byAge);System.out.println("After Sort:");list.forEach(Persons -> System.out.println("Persons age"+Persons.age));}
}
结果:
Before Name Sort:
Persons nameD
Persons nameB
Persons nameA
…
After Age Sort:
Persons nameB
Persons nameA
Persons nameD
优先队列,重写比较器
// 定义优先队列,修改默认升序的排序关键字 key
PriorityQueue<int[]> minHeap = new PriorityQueue<>(Comparator.comparingInt(a -> a[1]));
后序
请参考:Java Arrays.asList() 的避雷
请参考:Java中 forEach() 和 Iterator 与 增强for循环 的那些事儿
参考大佬文章,及官方API,向优秀的人致敬!
加油!
Java Comparator comparingInt() 的使用相关推荐
- java中sort函数comparator的使用_Java Comparator comparingInt()用法及代码示例
compareInt(java.util.function.ToIntFunction)方法接受一个函数作为参数,从类型T中提取一个int排序键,并返回一个与该排序键进行比较的Comparator.返 ...
- Java Comparator 珍藏版
点击蓝色"程序猿DD"关注我哟 加个"星标",不忘签到哦 来源:开源技术大全 Java java.util.Comparator功能接口对对象集合强制进行排序. ...
- Java Comparator源码总结 Comparator源码注释翻译和解析中英文对照版
版本 JDK8(JDK1.8) Comparator接口重点 1.Comparator接口是一个函数式接口,里面只有一个虚方法compare(T o1, T o2),该接口表示一个比较器,而实现Com ...
- 【Java 8 新特性】Java Comparator | 比较器
Java Comparator | 比较器 比较器功能方法:compare(T o1, T o2) 1. 使用 Lambda 表达式定义 compare 2. 自定义 compare 实现比较器 比较 ...
- 【Java 8 新特性】Java Comparator.comparing | 提取对象属性,按照指定规则排序
Java Comparator.comparing | 提取对象属性,按照指定规则排序 Comparator.comparing Comparator.comparingInt Comparator. ...
- java comparator内部类_java - Java Comparator使用.reverseOrder()但内部类 - 堆栈内存溢出...
我正在创建一个简单的程序来了解Java Comparator类. 我已经按顺序对一个Arraylist了排序,但现在我想按降序对列表进行排序,但是我在调用.reverseOrder()方法时遇到问 ...
- 【Java 8 新特性】Java Comparator.naturalOrder | 自然排序
Java Comparator.naturalOrder | 自然排序 与 Stream.sorted 一起使用 与 Collections.sort 一起使用 与 List.sort 一起使用 与 ...
- java comparator 排序_Java8 Comparator 排序方法
Java8 Comparator 排序方法 Java8 中 Comparator 接口提供了一些静态方法,可以方便于我们进行排序操作,下面通过例子讲解下如何使用 对整数列表排序(升序) List li ...
- 【Java 8 新特性】Java Comparator.thenComparing | 添加次级排序方式
Java Comparator.thenComparing | 添加次级排序方式 Comparator.thenComparing Comparator.thenComparingInt Compar ...
最新文章
- c语言测试代码怎么写,初学C语言,写了一个测试手速的工具,代码发上来,存着。。...
- 杨元庆捐资1亿人民币,要为母校上海交大建“最好的”高性能计算中心
- python读取中文-python读取中文txt文本
- SpringCloud 应用在 Kubernetes 上的最佳实践 — 线上发布(可回滚)
- 5/7 SELECT语句:过滤(LIKE使用通配符)
- Linux中Shell数组的笔记
- XmlDocument类
- 数据结构实验之排序三:bucket sort
- opencv对图像是软解码_C ++ OpenCV解码缓慢
- Oracle锁表处理
- 希尔排序是一种稳定的排序算法_排序算法—希尔排序
- Apple计划开发完全定制的GPU架构
- 如何用纯 CSS 创作一组昂首阔步的圆点
- Angular2-路由重定向的办法
- 罗技 连点 脚本_罗技G933S无线游戏耳机评测
- 顶级知识管理工具Evernote的GTD应用详细指南
- 《Adobe Flash CS6中文版经典教程》——第1课 Flash CS6快速入门1.1 启动Flash并打开文件...
- Axure 9 简介【原型工具】
- python 经典图书排行榜_书榜 | 计算机书籍(9.2-9.8)销售排行榜
- ACM模版-f_zyj v 2.0——更新通知
热门文章
- python操作execl——收藏必备
- java printwriter追加_Java PrintWriter append()方法
- A The system proxy was changed. Click to reenable capturing.A系统代理被更改。单击以重新启用捕获。
- Dlib库学习与介绍
- 寻侠家将选择,后期家将选择经验谈
- 如何让硬盘的速度更快一些
- 高并发系统设计——“三高”解决方案
- 【Bleak】一、简介及安装方法
- listview winfrom 表头_C# 设置Listview的Columns标头颜色和高度
- 苹果公布iPhone 2.0软件及SDK