好的,我正在尝试为我的 java 类完成这个程序,但我在这一部分遇到了麻烦。除了这个,其他一切都在工作。我有 3 个数组,1 个字符串,2 个 int 类型,全部并行。我必须按名称然后按数字将它们按字母顺序排序(首先使用字符串数组,然后是第一个 int 数组,排序不受第三个数组的影响,它可以在 3 维中练习并行)
这是我到目前为止的代码。
public static void sortDatabase(int numRecords, String[] sDeptArr,
int[] iCourseNumArr, int[] iEnrollmentArr)
{
System.out.println("Sort the database. \n");
String sTemp = null;
int iTemp = 0;
int eTemp = 0;
for(int i=0; i<numRecords; i++)
{
int iPosMin = i;
for(int j=i+1; j<numRecords; j++)
{
String a = sDeptArr[j];
String b = sDeptArr[iPosMin];
if(a.compareTo(b) != 0)
iPosMin = j;
else if(!sDeptArr[j].equals(sDeptArr[iPosMin]) && iCourseNumArr[j] < iCourseNumArr[iPosMin])
iPosMin = j;
}
sDeptArr[i] = sTemp;
sDeptArr[i] = sDeptArr[iPosMin];
sDeptArr[iPosMin] = sTemp;
iCourseNumArr[i] = iTemp;
iCourseNumArr[i] = iCourseNumArr[iPosMin];
iCourseNumArr[iPosMin] = iTemp;
iEnrollmentArr[i] = eTemp;
iEnrollmentArr[i] = iEnrollmentArr[iPosMin];
iEnrollmentArr[iPosMin] = eTemp;
}
}
它必须在java中完成。我在第 15 行遇到错误,包括
if(a.compareTo(b) != 0)
我得到一个 NullPointerException。
基本上,我对假班级名称和课程编号进行排序,同时保持注册人数与其对应的课程名称和编号索引平行。