いいえ私はJavaクラスへの私のこのプログラムを終了しようとしています、そして、私はこの1つの部分に問題があります。これを除いて他のすべてが働いています。私は3つの配列、1文字列、2種類のint、すべての並列を持っています。私はアルファベット順に番号順に並べ替える必要があります(文字列配列を使用し、最初のint配列、並べ替えは3番目の配列の影響を受けません)。Javaソート並列配列、助けが必要(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で行う必要があります。
if(a.compareTo(b) != 0)
からなる15行目でエラーが発生し、NullPointerExceptionが発生しています。
基本的には、偽のクラス名とコース番号を並べ替えると同時に、対応するインデックスと並行して登録された人数をコース名と番号に並べ替えています。
なぜ、1つのオブジェクトにすべてのデータをカプセル化するのではなく、3つの別々の配列を使用していますか? –
@Anonは宿題のように聞こえます –
aまたはbはnullです。 – Codemwnci