Java сортировка параллельных массивов - PullRequest
0 голосов
/ 27 ноября 2010

Мне нужно отсортировать базу данных из 1 массива строк и 2 массивов int.Это то, что у меня пока есть:

public static void sortDatabase(int numRecords, String[] sDeptArr, 
              int[] iCourseNumArr, int[] iEnrollmentArr)
   {
       int length = sDeptArr.length;
       for(int i=0; i<length-1; i++)
       {
           int iPosMin = i;
           for(int j=i+1; j<length; j++)
           {
               if(sDeptArr[j].compareTo(sDeptArr[iPosMin]) == 0)
                   iPosMin = j;
               else if(sDeptArr[j].equals(sDeptArr[iPosMin]) && iCourseNumArr[j] < iCourseNumArr[iPosMin])
                   iPosMin = j;
           }
       }
   }

Я еще не протестировал это, потому что вся программа не выполнена, но похоже ли это, что она движется в правильном направлении?Сначала я хочу отсортировать базу данных в алфавитном порядке по имени, а затем, если имена совпадают, использовать для сортировки номер курса.

1 Ответ

2 голосов
/ 27 ноября 2010

ИМХО ваше направление не оптимально.Лучший способ, который я знаю, - это создать новую структуру данных

public class Data implements Comparable<Data> {
    private String sDeptArr;
    private int iCourseNumArr;
    private int iEnrollmentArr;

    public int compareTo(Data other) {
    // your implementation
    }
}

Теперь создайте массив или коллекцию данных:

List<Data>
Data[]

Теперь используйте Arrays.sort() или Collections.sort().

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