You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java代码Arrays.sort(intervals,(arr1,arr2)->Integer.compare(arr1[0],arr2[0]))的含义是什么?

这段Java代码的具体含义解释

给出的代码如下:

Arrays.sort(intervals,(arr1,arr2) -> Integer.compare(arr1[0],arr2[0]));

它的作用是将二维int数组intervals按照每个子数组的第一个元素的值,从小到大升序排列,各部分拆解如下:

  • Arrays.sort()是Java内置的数组排序工具方法,这里调用的是支持自定义比较规则的重载版本,第一个参数传入待排序的数组,第二个参数传入自定义比较器。
  • intervals是待排序的二维int数组,通常用来存储区间类数据,每个子数组对应一个区间的起止数值。
  • 第二个参数是Java 8及以上版本支持的Lambda表达式,等价于实现了Comparator<int[]>接口的比较器,具体比较规则为:
    • 取两个待比较的子数组arr1和arr2索引为0的元素,通过Integer.compare()方法对比两者大小
    • 若arr1[0]小于arr2[0]返回负数,排序时arr1会排在arr2前面
    • 若两者相等返回0,排序时两者相对位置取决于所用排序算法的稳定性
    • 若arr1[0]大于arr2[0]返回正数,排序时arr1会排在arr2后面

示例效果

如果intervals初始值为[[3,5],[1,2],[4,6],[2,4]],执行这段代码后输出的排序结果为[[1,2],[2,4],[3,5],[4,6]]。

拓展说明

如果需要改为按子数组第一个元素降序排列,只要调换Integer.compare的两个入参即可:

Arrays.sort(intervals,(arr1,arr2) -> Integer.compare(arr2[0],arr1[0]));

如果使用的Java版本低于8不支持Lambda语法,可以用匿名内部类实现相同逻辑:

Arrays.sort(intervals, new Comparator<int[]>() {
    @Override
    public int compare(int[] arr1, int[] arr2) {
        return Integer.compare(arr1[0], arr2[0]);
    }
});

内容的提问来源于stack exchange,提问作者Aahlad Kethineedi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 05:09:00