Как отсортировать первый столбец в 2-мерном массиве на основе второго? - PullRequest
1 голос
/ 05 ноября 2011

Например:

Мой первый столбец в массиве сначала численно в порядке. Второй столбец численно случайный. Я хочу разместить второй столбец по порядку, что, конечно, заставит первый столбец выйти из строя. Любые идеи, как это сделать в Java. Я искал, но не могу найти словарь, чтобы правильно его найти.

1 Ответ

4 голосов
/ 05 ноября 2011

Метод, который вы можете использовать, является одним из Arrays.sort () , где вы определяете свой собственный компаратор, который может сравнивать две строки двумерного массива.

Приведенный ниже код выделяет массив из двух столбцов и десяти строк, причем первый столбец отсортирован, а второй - полностью случайным образом. Затем сортирует его по второму столбцу.

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);
    }
}

Пример вывода:

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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...