首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何根据二维数组中的第一列对第二列进行排序?

如何根据二维数组中的第一列对第二列进行排序?
EN

Stack Overflow用户
提问于 2011-11-06 01:37:49
回答 1查看 6.3K关注 0票数 1

例如:

我在数组中的第一列首先是按数字顺序排列的。第二列是数值随机的。我想按顺序排列第二列,这当然会迫使第一列打乱顺序。有任何想法如何在java中做到这一点。我已经搜索过了,但似乎找不到合适的词汇表。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-06 01:50:40

您可以使用的方法是Arrays.sort()之一,您可以在其中定义自己的比较器,它可以比较两个二维数组的行。

下面的代码分配一个两列十行的数组,第一列是排序的,第二列是完全随机的。然后,它根据第二列对其进行排序。

代码语言:javascript
运行
复制
class Test{

    static void print(int[][] a){
        for (int i=0;i<a.length;i++){
            for (int j=0;j<a[0].length;j++) 
                System.out.print(a[i][j]+" ");
            System.out.println();
        }
    }

    public static void main(String[]args){

        java.util.Random r = new java.util.Random();
        int[][] a = new int[10][2];
        for (int i=0;i<a.length;i++){
            a[i][0]=i+1;
            a[i][1]=r.nextInt(100);
        }

        print(a);
        System.out.println();

        java.util.Arrays.sort(a, 
            new java.util.Comparator<int[]>(){
                public int compare(int[]a,int[]b){
                    return a[1]-b[1];
                }
        });

        print(a);
    }
}

输出示例:

代码语言:javascript
运行
复制
1 8 
2 49 
3 82 
4 89 
5 8 
6 0 
7 83 
8 89 
9 8 
10 46 

6 0 
1 8 
5 8 
9 8 
10 46 
2 49 
3 82 
7 83 
4 89 
8 89 
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8021964

复制
相关文章

相似问题

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