元月's blog 元月's blog
首页
  • 基础
  • 并发编程
  • JVM
  • Spring
  • Redis篇
  • Nginx篇
  • Kafka篇
  • Otter篇
  • Shardingsphere篇
  • 设计模式
  • MySQL
  • Oracle
  • 基础
  • 操作系统
  • 网络
  • 数据结构
  • 技术文档
  • Git常用命令
  • GitHub技巧
  • 博客搭建
  • 开发工具
更多

元月

临渊羡鱼,不如退而结网
首页
  • 基础
  • 并发编程
  • JVM
  • Spring
  • Redis篇
  • Nginx篇
  • Kafka篇
  • Otter篇
  • Shardingsphere篇
  • 设计模式
  • MySQL
  • Oracle
  • 基础
  • 操作系统
  • 网络
  • 数据结构
  • 技术文档
  • Git常用命令
  • GitHub技巧
  • 博客搭建
  • 开发工具
更多
  • 基础

    • Java随记
    • Java到底是值传递还是引用传递?
    • Java中的自动装拆箱是什么?
    • Java中比较大小的方式
      • 一、常用的几种比较大小方式
        • 1.1、lambda表达式 (a,b) -> a - b
        • 1.2、Comparator
    • Java中的泛型是什么
  • 并发编程

  • JVM

  • Java基础
  • 基础
元月
2022-07-13
目录

Java中比较大小的方式

# Java中比较大小的方式

# 一、常用的几种比较大小方式

# 1.1、lambda表达式 (a,b) -> a - b

//一维数组,注意此处使用int[] 会编译报错
Integer[] array = {4, 3, 2, 10, 1, 5, 6};
Arrays.sort(array, (a, b) -> b - a);

//二维数组
int[][] intervals = {{1,5},{5,3},{3,34},{2,4}};
Arrays.sort(intervals,(a,b) -> a[0] - b[0]);//根据二维数组的第一列 升序
Arrays.sort(intervals,(a,b) -> b[0] - a[0]);//根据二维数组的第一列 降序
1
2
3
4
5
6
7
8

在某些情况下,a[0] - b[0]将溢出,您将得到一个符号错误的结果。

例如,如果a是Integer.MIN_VALUE并且b是正整数,那么a - b应该是负的,但结果是正的。

(这是一个相当常见的错误,即使是相对有经验的程序员也会犯…….)

如果考虑这种情况的话,使用这个(x < y) ? -1 : ((x == y) ? 0 : 1) 等价于Integer.compare(a,b)

# 1.2、Comparator

int[][] intervals = {{1,5},{5,3},{3,34},{2,4}};
//intervals 升序,底层调用的是`Integer.compare(a,b)`
Arrays.sort(intervals, Comparator.comparingInt(a -> a[0]);//根据二维数组的第一列数据进行比较

Arrays.sort(intervals, new Comparator<int[]>() {//根据二维数组的第二列数据进行比较
    public int compare(int[] point1, int[] point2) {//升序
        if (point1[1] < point2[1]) {
            return -1;//-1 表示points[1]小于points2[1]
        }else if(point1[1] == point2[1])(
          	return 0;//0 表示points[1]等于points2[1]){
        }else {
            return 1;//1 表示points[1]大于points2[1]
        } 
    }
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Java中的自动装拆箱是什么?
Java中的泛型是什么

← Java中的自动装拆箱是什么? Java中的泛型是什么→

最近更新
01
otter二次开发-支持按目标端主键索引Load数据
08-03
02
mvnw简介
06-21
03
gor流量复制工具
06-03
更多文章>
Theme by Vdoing | Copyright © 2022-2024 元月 | 粤ICP备2022071877号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式