Ладно, я пытаюсь закончить эту программу, чтобы перейти в класс 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.
По сути, я сортирую поддельные имена классов и номера курсов, сохраняя количество зачисленных людей параллельно с соответствующим индексом для названия курса и номера.