我昨天开始学习java,我编写了以下程序,它应该打印成对的相等数字,但是当我运行它时,我得到了
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。
谢谢!