좋아,이 자바 클래스에 내 프로그램이 완료하려고하고 있는데, 나는이 한 부분과 문제가 있습니다. 이것을 제외하고는 다른 모든 것이 작동합니다. 3 배열, 1 문자열, 2 형식 int, 모든 병렬 있습니다. 이 배열을 이름순으로 정렬 한 다음 번호순으로 정렬해야합니다 (먼저 문자열 배열을 사용한 다음 첫 번째 int 배열을 정렬하고 세 번째 배열의 영향을받지 않습니다).자바 정렬 병렬 배열, 도움이 필요 (NullPointerException 오류)
지금까지 가지고있는 코드입니다.
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이 발생합니다.
기본적으로 가짜 클래스 이름과 코스 번호는 해당 색인과 병행하여 등록한 사람의 수를 코스 이름과 번호로 정렬하면서 정렬합니다.
왜 하나의 개체에 모든 데이터를 캡슐화하는 대신 세 개의 개별 배열을 사용하고 있습니까? –
@Anon은 숙제 인 것처럼 들린다 –
a 또는 b가 null입니다. – Codemwnci