2010-11-27 5 views
0

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

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

Любые причины, вы не используете sql для этого? – 2010-11-27 18:36:30

+0

Потому что я должен сделать это в java. – Mike 2010-11-27 18:51:10

ответ

2

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

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().