2009-06-10 72 views
0

我只是盲目看到解決方案?快速修復Java錯誤ArrayIndexOutOfBoundsException

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

任何幫助表示讚賞!謝謝!

+0

請格式化代碼 - 它確實爲我們治療失明:-) – 2009-06-10 20:20:49

+1

需要更多的代碼。從哪裏來的:nsamples來自哪裏?另外,你是否實例化了人口[z]?此外,你會發現你的界限異常? – Alex 2009-06-10 20:22:51

回答

2

如果所有樣本權重爲零,sampleSum將爲零,並且population.length = 0。所以當你做人口[z]會有一個ArrayIndexOutOfBoundsException。

1

我推測你有N個整數,N =#Samples x#weights/Sample(i)?

如果是這樣,從哪裏得到sampleWeights數組(或列出給定的自整函數)?

用一些System.out.println再次運行你的代碼來收集調試信息,你很快就會發現錯誤。