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

如何用Java对二维数组按首元素、次元素依次排序?

二维数组二级排序解决方案

针对你需要实现的先按子数组首元素升序,首元素相同时按次元素升序的需求,可以通过Java的Arrays.sort()配合自定义比较器实现,以下是具体代码和说明:

修正原始数组语法问题

注意你提供的原始数组中{10 6}存在语法错误,缺少逗号,正确写法应为{10, 6},否则无法编译。

完整实现代码

匿名内部类写法(兼容Java 8之前版本)

import java.util.Arrays;
import java.util.Comparator;

public class ArraySortDemo {
    public static void main(String[] args) {
        int[][] array = {{4, 7}, {4, 1}, {14, 11}, {10, 6}, {13, 4}, {4, 10}, {10, 3}, {9, 14}};

        // 自定义排序规则
        Arrays.sort(array, new Comparator<int[]>() {
            @Override
            public int compare(int[] subArr1, int[] subArr2) {
                // 第一步:比较子数组的首元素
                int firstCompare = Integer.compare(subArr1[0], subArr2[0]);
                if (firstCompare != 0) {
                    // 首元素不同,直接返回比较结果
                    return firstCompare;
                }
                // 第二步:首元素相同时,比较次元素
                return Integer.compare(subArr1[1], subArr2[1]);
            }
        });

        // 输出排序后的数组
        for (int[] subArr : array) {
            System.out.println("{" + subArr[0] + ", " + subArr[1] + "}");
        }
    }
}

Lambda表达式简化写法(Java 8及以上版本)

如果使用Java 8或更高版本,可以用Lambda表达式简化比较器代码:

import java.util.Arrays;

public class ArraySortDemo {
    public static void main(String[] args) {
        int[][] array = {{4, 7}, {4, 1}, {14, 11}, {10, 6}, {13, 4}, {4, 10}, {10, 3}, {9, 14}};

        // 简化的Lambda排序规则
        Arrays.sort(array, (subArr1, subArr2) -> {
            int firstCompare = Integer.compare(subArr1[0], subArr2[0]);
            return firstCompare != 0 ? firstCompare : Integer.compare(subArr1[1], subArr2[1]);
        });

        // 输出结果
        for (int[] subArr : array) {
            System.out.println("{" + subArr[0] + ", " + subArr[1] + "}");
        }
    }
}

实现原理

  • Arrays.sort()方法接收数组和Comparator接口实现类,通过自定义compare()方法定义排序逻辑。
  • 先比较两个子数组的首元素:如果结果不为0(即首元素不同),直接返回该结果,实现首元素的升序排序。
  • 若首元素相同,则比较两个子数组的次元素,返回比较结果,实现次元素的升序排序。

运行上述代码后,输出结果将与你期望的排序结果完全一致。

内容的提问来源于stack exchange,提问作者Mr. Zhao

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 16:07:31