Быстрое исправление ошибки Java ArrayIndexOutOfBoundsException - PullRequest
0 голосов
/ 11 июня 2009

Должен ли я просто ослепнуть, чтобы увидеть решение?

sampleSum = 0;
for(int x : sampleWeights)
   sampleSum += x;

population = new int[sampleSum];
int z = 0;

for(int i = 0; i < nsamples; i++)
for(int j = 0; j < sampleWeights[i]; j++) 
{
    population[z] = i;
    z++;
}  

Любая помощь приветствуется! Спасибо!

Ответы [ 2 ]

2 голосов
/ 11 июня 2009

Если все sampleWeights равен нулю, sampleSum будет равен нулю и Population.length = 0. Таким образом, когда вы выполняете заполнение [z], возникает исключение ArrayIndexOutOfBoundsException.

1 голос
/ 11 июня 2009

Я предполагаю, что у вас есть N целых чисел, N = # выборок x # весов / выборок (i)?

Если это так, откуда вы взяли массив sampleWeights (или список с учетом автобоксирования целых чисел)?

Запустите ваш код еще раз с некоторыми System.out.println, чтобы собрать отладочную информацию, и вы быстро увидите, что не так.

...