Android Сортировка многомерного объекта или массива int - PullRequest
1 голос
/ 18 сентября 2011

Есть ли способ сортировки многомерного объекта?

Object[][] datetable= new Object[2][2];

    datetable[0][0] = 2;
    datetable[0][1] = "Name2";
    datetable[1][0] = 1;
    datetable[1][1] = "Name1";

Если нет, то как бы отсортировать многомерный массив int?

int[][] numtable= new int[2][2];

    numtable[0][0] = 2;
    numtable[0][1] = 20;
    numtable[1][0] = 1;
    numtable[1][1] = 10;

Я бы хотел отсортировать его по первому набору чисел (numbtable [x] или datetable [x]) Я могу получить многомерную строку для сортировки без проблем, но с этим у меня проблемы.

1 Ответ

0 голосов
/ 18 сентября 2011

Сортировка массивов int производится с использованием объектов Integer и компаратора, аналогично ответу hotveryspicy, как здесь:

Integer[][] numtable = new Integer[2][2];
numtable[0][0] = 2;
numtable[0][1] = 20;
numtable[1][0] = 1;
numtable[1][1] = 10;

Arrays.sort(numtable, new Comparator<Integer[]>() {
    @Override
    public int compare(Integer[] int1, Integer[] int2) {
        return int1[0].compareTo(int2[0]);
    }

});

Однако из ваших комментариев вы, похоже, указываете, что у вас будет массив объектов 5х12, перемежающийся строками и целочисленными значениями, которые не связаны друг с другом (сортировка теряет связь между вашими элементами, что и делает меня Подумайте так), который вы, кажется, объединяете в один многомерный массив вместо отдельных списков (именно так я, вероятно, и поступил бы).

если вы конвертируете в список строк / строк, то используйте их для сортировки, в этом случае я показываю версию int:

List<Integer> myList = new ArrayList<Integer>();
myList.add(2);
myList.add(1);
Collections.sort(myList);
System.out.println("myList is: " + myList);
...