2013-10-15 5 views
-1

Это матрица, где и сравнение 1-й строки и вторая строка 1-го значения столбца, если его равно ус использованием класса компаратора в Java

печати и перейти к 2-ю колонку делать то же самое, если не равно, то печать низки значение и следующий третий столбец делают то же самое, теперь сравните вторую и третью строки, сделайте то же самое. сделать это для полной матрицы сидит в возрастающем порядке .. Как решить эту проблему с помощью сравнения класса .. помогите мне, пожалуйста

введите код здесь: Int А [] [] = {{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]

ответ

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])); 
     } 
    } 
} 
Смежные вопросы