2016-06-13 3 views
2

Я сохраняю сумму всех пар элемента массива в arraySum [] array. Для этого я создал класс 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); 
      } 
      } 

ответ

2

В настоящее время, вы только создали массив, который может держать объекты типа PairSum. Вам нужно создать экземпляр каждого PairSum объекта индивидуально:

pairSum[k] = new PairSum(); 

Перед доступом к любому PairSum в вашем pairSum массиве.

Смежные вопросы