在Java中使用Comparator类

时间:2013-10-15 02:04:10

标签: java-ee

这是矩阵,其中u比较第1行和第2行第1列值,如果它等于u

打印并移动到第二列做同样的,如果不相等那么打印低值和下一个第三列做同样的,现在比较第二和第三行做同样的事情。为完整矩阵做这个按升序排列..如何使用比较类来解决这个问题..请帮助我

在此处输入代码:int a [] [] = {{3,6,5},

            {3,5,7},

            {2,1,6},

            {2,1,3},

            {7,8,5},

            {6,3,2}};

O / P矩阵

[2 1 3]

[2 1 6]

[3 5 7]

[3 6 5]

[6 3 2]

[7 8 5]

1 个答案:

答案 0 :(得分:0)

快速解决方案可能如下

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

class Compare2Darray {
    public static Comparator<Integer[]> getComparator() {
        return new Comparator<Integer[]>() {
            public int compare(Integer[] o1, Integer[] o2) {
                for (int i = 0; i < o1.length; i++) {
                    if (o1[i].compareTo(o2[i]) != 0) {
                        return o1[i].compareTo(o2[i]);
                    }
                }
                return 0;
            }};
    }

    public static void main (String[] args) {
        Integer a[][] = {{3,6,5}, {3,5,7}, {2,1,6}, {2,1,3}, {7,8,5}, {6,3,2}};
        Arrays.sort(a, getComparator());
        for (int i = 0; i < a.length; i++) {
            System.out.println(Arrays.toString(a[i]));
        }
    }
}