首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用第三列的Java-2d数组排序

使用第三列的Java-2d数组排序
EN

Stack Overflow用户
提问于 2014-03-16 02:21:38
回答 2查看 65关注 0票数 0

我有下面的代码。当我试图编译它时,它会给出以下错误:

线程“主”java.lang.Error中的异常:未解决的编译问题:类型数组中的方法排序(T[],比较器)不适用于>参数(int,新比较器(){}) 在test.main.main(main.java:12)

代码语言:javascript
复制
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]);
        }

    }
}

我如何解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-16 02:24:50

您可以使用

代码语言:javascript
复制
Integer[][] A = ...;

而不是

代码语言:javascript
复制
int[][] A = ...;

您可以在这篇文章中获得更多信息:Why can Java Collections not directly store Primitives types?

票数 2
EN

Stack Overflow用户

发布于 2014-03-16 02:37:15

您不必调用Arrays.sort(Integer[], Comparator);,而是可以直接调用Arrays.sort(int[]);

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22432235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档