我将所有数组元素的总和存储到pairSum []数组中。
为此,我创建了PairSum
类,它存储了两个元素及其总和。
但是我在第pairSum[k].sum = v
行
我创建了数组
PairSum[] pairSum = new PairSum[val];
我做错了什么?
public class test {
class PairSum{
int first;
int second;
int sum;
}
public static void findElements(int arr[], int n){
int val = (n*(n-1))/2;
PairSum[] pairSum = new PairSum[val];
int k=0;
for(int i=0;i<n-1;i++){
for (int j=i+1;j<n;j++){
int v = arr[i] + arr[j];
System.out.println("sum..." + v);
pairSum[k].sum = v;//NullPointerException here
System.out.println("valll.." + pairSum[k]);
pairSum[k].first = arr[i];
pairSum[k++].second = arr[j];
}
}
}
public static void main(String[] args) {
int arr[] = {10, 20, 30, 40, 1, 2};
int n = arr.length;
findElements (arr, n);
}
}
答案 0 :(得分:2)
截至目前,您只创建了一个可以保存 PairSum
类型对象的数组。您需要单独实例化每个PairSum
对象:
pairSum[k] = new PairSum();
在访问PairSum
数组中的任何pairSum
之前。