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