Сортировать массив по первой переменной, затем отсортировать по убыванию - PullRequest
2 голосов
/ 30 декабря 2011

Эй, ребята, вот мой вопрос.Я использую JCombobox.если у ученика есть оценка CB на уроке, она должна сначала появиться в jcombobox, например, CB AA BA BB CC DC DD FD FF, если ученик имеет оценку DD, она должна быть показана так же, как DD AA BA BB CB CC DC FD FF.

Здесь все члены массива

String [] subset = new String [] {"AA", "BA", "BB", "CB", "CC", "DC", "DD", "FD", "FF"};

, если учащийся, имеющий оценку BB в массиве уроков, должен быть отсортирован следующим образом: BB AA BA BB CB CC DC DD FD FF.этот средний массив должен быть отсортирован по классу ученика в первом элементе массива.тогда он должен быть отсортирован по убыванию.

Я попросил сортировать массив, потому что jcombobox работает над этим.Есть ли функция или метод, который делает это?

спасибо.

Ответы [ 3 ]

1 голос
/ 31 декабря 2011

Как насчет этого:

public static String[] getCustomSortArray(String grade, String[] grades)
{
    int index = -1;
    for(int i = 0; i < grades.length; i++)
    {
        if(grades[i].equals(grade))
        {
            index = i;
            break;
        }
    }

    if(index == -1) return grades;

    String temp = new String[grades.length];
    temp[0] = grades[index];

    int counter = 1;
    for(int i = 0; i < grades.length; i++)
    {
        if(i != index) temp[counter++] = grades[i];
    }
    return temp;
}

Я не проверял, но думаю, что это работает.

0 голосов
/ 30 декабря 2011

для сортировки массива вы можете использовать, он использует метод CompareTo () интерфейса Comparable для сортировки.

Arrays.sort(array);

Для сортировки по убыванию вы можете использовать Collections.reverseOrder() компаратор.

Если я вас правильно понимаю, этот компаратор может работать на вас.

        Object yourComparator = new Comparator<Comparable<Object>>() {
            @Override
            public int compare(Comparable<Object> c1, Comparable<Object> c2) {
                if(c1.equals(variable)){
                    return 1;
                }
                else if(c2.equals(variable)){
                    return -1;
                }
                else {
                    return c2.compareTo(c1);
                }

            }



        };
0 голосов
/ 30 декабря 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...