我必须对 1 个字符串数组和 2 个整数数组的数据库进行排序。这是我到目前为止所拥有的:
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;
}
}
}
我还没有测试它,因为整个程序还没有完成,但这看起来是否朝着正确的方向发展?我想先按姓名的字母顺序对数据库进行排序,如果姓名相同,则使用类(class)编号进行排序。
最佳答案
恕我直言,你的方向不是最佳的。 我知道的最好方法是创建新的数据结构
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()
。
关于Java 对并行数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4293146/