2016-06-13 11 views
2

私はpairSum []配列に配列要素のすべてのペアの合計を格納しています。 これは2つの要素とその合計を格納するPairSumクラスを作成したものです。オブジェクトの配列を作成する際の例外

しかし、私は

ラインpairSum[k].sum = vにnullポインタ例外を取得しています、私は私が間違っているのは何

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); 
      } 
      } 

答えて

2

は、今のところ、あなただけのタイプPairSumオブジェクトを保持することができ、配列を作成しました。あなたのpairSum、アレイ内の任意のPairSumにアクセスする前に

pairSum[k] = new PairSum(); 

:あなたは個別にすべてのPairSumオブジェクトをインスタンス化する必要があります。

関連する問題