本文介绍使用 java 的 `arrays.sort()` 配合 `comparator` 链式调用,对 int 类型二维数组按主次字段(如先第 0 列、再第 1 列)实现稳定升序排序的方法。
在 Java 中,对二维数组(如 int[][] arr)进行多级排序,核心在于将每一行视为一个逻辑“记录”,并借助 Comparator 定义复合比较规则。推荐方式是使用 Comparator.
以下为完整可运行示例:
import java.util.Arrays;
import java.util.Comparator;
public class MultiColumnSort {
public static void main(String[] args) {
int[][] arr = {
{1, 7},
{2, 6},
{3, 9},
{4, 1},
{5, 3},
{6, 7}
};
// 按第 0 列升序为主序,第 1 列升序为次序
Arrays.sort(arr, Comparator.comparingInt(row -> row[0])
.thenComparing(row -> row[1]));
System.out.println(Arrays.deepToString(arr));
// 输出:[[1, 7], [2, 6], [3, 9], [4, 1], [5, 3], [6, 7]]
}
} ✅ 关键说明:

.thenComparingInt(row -> row[1])
comparingInt(row -> row[0]).reversed().thenComparingInt(row -> row[1])
⚠️ 注意事项:
综上,Comparator 链式调用是 Java 8+ 中简洁、安全、高性能的多字段排序方案,兼顾可读性与扩展性,是处理二维数组排序的首选实践。