繁体   English   中英

java - 使用第3列的2d数组排序

[英]java - 2d array sorting using 3rd column

我有以下代码。 当我尝试编译它时,它给我以下错误:

线程“main”中的异常java.lang.Error:未解决的编译问题:Arrays类型中的方法sort(T [],Comparator)不适用于> arguments(int [] [],new Comparator(){} )

在test.main.main(main.java:12)


import java.io.*;
import java.util.Arrays;
import java.util.Comparator;

public class main {
        public static void main(String[] args) throws IOException {

        int [][] A = {{1,2,3}, {2,3,4}, {3,4,5}};

        Arrays.sort(A, new Comparator<Integer[]>() {
            public int compare(Integer[] int1, Integer[] int2) {
                Integer key1 = int1[2];
                Integer key2 = int2[2];
                return key1.compareTo(key2);
            }
        });


        for(int i=0; i<3; i++) {
            System.out.println(A[i][0] + ", " + A[i][1] + ", " + A[i][2]);
        }

    }
}

我怎么解决这个问题

您可以使用解决此问题

Integer[][] A = ...;

代替

int[][] A = ...;

您可以在这篇文章中获得更多信息: 为什么Java Collections不能直接存储Primitives类型?

你不需要调用Arrays.sort(Integer[], Comparator); 相反,你可以直接调用Arrays.sort(int[]);

实际上Integer已经实现了Comparable ,因此您可能无法再次定义它,除非您想要定义一些不同的排序样式!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM