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

如何使用Java Arrays.sort对二维数组按第二列排序?

Java二维double数组按第二列排序实现方案

你可以使用Arrays.sort()方法,结合自定义的Comparator来实现按二维数组的第二列(索引为1的列)进行升序排序,具体代码如下:

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

public class Sort2DArray {
    public static void main(String[] args) {
        double[][] myArr = {
            {1, 5},
            {13, 1.55},
            {12, 100.6},
            {12.1, 0.85}
        };

        // 按第二列升序排序
        Arrays.sort(myArr, new Comparator<double[]>() {
            @Override
            public int compare(double[] o1, double[] o2) {
                // 比较两个数组的第二列元素
                return Double.compare(o1[1], o2[1]);
            }
        });

        // 打印排序后的结果
        for (double[] row : myArr) {
            System.out.println(row[0] + "    " + row[1]);
        }
    }
}

关键说明:

  • Arrays.sort()支持传入自定义比较器,以此指定排序规则
  • 在compare方法中,通过o1[1]和o2[1]获取每行的第二列元素,用Double.compare()处理double类型比较,避免直接减法带来的精度问题
  • 若需降序排序,只需将Double.compare(o1[1], o2[1])改为Double.compare(o2[1], o1[1])

如果你使用Java 8及以上版本,还可以用Lambda表达式简化代码:

Arrays.sort(myArr, (o1, o2) -> Double.compare(o1[1], o2[1]));

或者用更简洁的方法引用写法:

Arrays.sort(myArr, Comparator.comparingDouble(a -> a[1]));

以上写法都能实现你需要的按第二列升序排序的效果,运行后输出结果将与你期望的一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 08:22:01