当前位置: 首页 > news >正文

Java 细节汇总(5)-Comparator#compare() 升降序确定

文章目录

  • 1. Comparator#compare() 升降序确定
      • 升序分析

1. Comparator#compare() 升降序确定

Java 语言中 Comparator#compare(T o1, T o2) 方法的实现可以决定排序元素的升序降序,但是许多人对升降序如何确定完全没有概念。要理解升降序是如何确定的,首先要有以下观念:

  1. Comparator#compare(T o1, T o2) 方法的两个形参表示了元素在集合中的相对位置,入参 o1 位置在前,o2 位置在后
  2. 该方法返回值表达的含义是元素是否需要交换位置,返回值为正数,元素位置互换,0 或负数,不做处理

升序分析

举例以下方法实现,其升降序的分析如下:

  1. 首先明确元素在集合中的相对位置, o1 在前, o2 在后
  2. 如果 o1.val - o2.val 计算结果为正,交换两元素位置,为 0 或者负,不交换位置
  3. 综合以上条件,计算结果为正时,则 o1.val 为较大的数,o1 需要与 o2 交换位置。原本大数位置在前,较小的数位置在后,现在需要将大数置后,排序方式显然为升序

降序的判断分析与此类似,不再赘述

int compare(T o1, T o2) {return o1.val - o2.val;
}
http://www.lryc.cn/news/68862.html

相关文章:

  • 湖北棒球发展报告·棒球5号位
  • 使用Eclipse 进行远程 Debug 调试
  • 记第一次出差得出的经验
  • 第12章:视图
  • Word控件Aspose.Words教程:操作 XPS 和 EPS 文档
  • java并发-Exchanger
  • 毫米波雷达系列 | 传统CFAR检测(自适应类)
  • 【2023/05/19】NFA
  • 汽车功能安全
  • 【Python】数据分析与可视化实践:收支日统计数据可视化的实现
  • Halcon 中_xld算子的概念与应用? select_shape_std 和 select_shape_xld区别?
  • [pgrx开发postgresql数据库扩展]7.返回序列的函数编写(3)多行表序列
  • 刚入职,就想跑路了...
  • 如何让技术架构师具有预知未来业务发展的能力
  • 卷麻了,新来的00后实在是太卷了...
  • 单片机--实战练习
  • Go Etcd 分布式锁实战
  • Windows环境下pcl点云库 安装配置教程
  • 岗位分析与可视化系统(三)
  • unity进阶学习笔记:json和xml
  • 数据结构之初识树与堆
  • 虚拟化技术 — VirtIO 虚拟设备接口标准
  • Dubbo——SpringBoot集成Dubbo(@Autowired和@Reference的区别、Dubbo的服务治理)
  • 高并发系统的三把利器
  • AppiumWinAppDriver自动化测试 Failed to locate opened application window with appid问题
  • 渗透测试--6.1.aircrack-ng破解wifi密码
  • C++中的继承、以及赋值兼容转换。
  • js浏览器实现简单的实时扫一扫功能
  • unity愤怒的小鸟学习制作(二)
  • 干外包3年,彻底寄了...