快速修复Java错误ArrayIndexOutOfBoundsException

时间:2009-06-10 20:17:39

标签: java arrays indexoutofboundsexception

我只是盲目地看到解决方案?

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 个答案:

答案 0 :(得分:2)

如果所有sampleWeights都为零,则sampleSum将为零且population.length = 0。所以当你做人口[z]时会有一个ArrayIndexOutOfBoundsException。

答案 1 :(得分:1)

我假设你有N个整数,N =#Samples x#weights / Sample(i)?

如果是这种情况,你从哪里得到sampleWeights数组(或者给出了整数自动装箱的列表)?

使用一些System.out.println再次运行代码以收集调试信息,您将很快看到错误。