idea划紫线是啥意思,可以替代成Comparator.comparingInt?

idea划紫线是啥意思,可以替代成Comparator.comparingInt?这两个不是同一个排序方法吧

img

其实这就是 求两个数的相减的结果, 比如 a - b , 相当于 Integer.compare(a, b)
a - b 有三种结果 , 大于 0,等于 0,小于 0,用于排序
Integer.compare(a, b) ,也有三种结果 , 1表示 a-b大于0, 0 表示 a-b 等于 0, - 1 表示 a - b 小于0,同样用于排序,
两者效果相当

用于一个数组的升序排序,Arrays.sort() 方法定义是一个用于排序数组的静态方法,它可以接受一个待排序数组和一个 Comparator 对象。
第二个参数 (i, j) -> queries[i] - queries[j] 是一个 lambda 表达式,也是一个 Comparator 接口的实现。它指定了在对数组 idx 进行排序时,应该如何比较其中的元素。
关键这个 lambda 表达式接受两个参数 ij,它们代表了数组 idx 中要进行比较的两个元素的下标。queries 数组是另外一个数组,它和 idx 数组一起被排序。 (i, j) -> queries[i] - queries[j] 会按照查询数组 queries 中的值从小到大比较 idx 数组中的两个元素,也就是说,它会将 idx 数组按照查询数组 queries 中的值升序排列。
使用场景是在需要比较的时候动态创建比较器,使得代码更加简洁灵活。