私は昨日Javaを学び始め、同じ数のペアを出力するfollowindプログラムを作成しましたが、実行すると次のようになります。
Exception in thread "main" java.lang.NullPointerException
at _aaaa.main(_aaaa.java:26)
これが私のプログラムです:
import java.util.*;
class pair {
int first, second;
pair() {
first = second = 0;
}
public void make_pair(int a, int b)
{
first = a;
second = b;
}
}
public class aaaa {
public static void main(String[] idontneedthis)
{
Scanner input = new Scanner(System.in);
int N = input.nextInt(), i, lg = 0;
int[] A = new int[5010];
pair[] B = new pair[5010];
for (N <<= 1, i = 1; i <= N; ++i)
{
int var = input.nextInt();
if (A[var] > 0)
{
B[++lg].make_pair(A[var], var);
A[var] = 0;
}
else
{
A[var] = i;
}
}
if (lg == 0) System.out.print("-1");
for (i = 1; i <= lg; ++i)
{
System.out.print(B[i].first + " " + B[i].second + "\n");
}
}
}
何が問題なのか、なぜこのエラーが発生するのかを教えてください。26()行をカットするB[++lg].make_pair(A[var], var);
と、-1と表示されることに注意してください。
ありがとうございました!