2010-11-27 87 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()