2009-06-10 10 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

コードをフォーマットしてください - それは私たちにとって失明を治します:-) –

+1

もっとコードが必要です。 nsamplesはどこから来たのですか?また、人口[z]をインスタンス化しましたか?また、あなたはあなたの境界外の例外をどのようにしていますか? – Alex

+0

ここで十分なコードがありません。nsamplesが宣言されている場所は何ですか?たぶん、それは> sampleWeights.lengthです。 – stevedbrown

答えて

2

すべてのsampleWeightsがゼロの場合、sampleSumはゼロになり、population.length = 0になります。したがって、population [z]を実行すると、ArrayIndexOutOfBoundsExceptionが発生します。

+0

sampleWeights [i]がゼロの場合、母集団[z]は実行されません。 –

+0

そうだね。高次構造を待っている。 –

+0

作品!おかげでダニエル! –

1

N個の整数N =#Samples x#weights/Sample(i)があるとしますか?

この場合、sampleWeights配列はどこから得られましたか(または、整数のオートボクシングリストがありますか?)

System.out.printlnでコードを再実行してデバッグ情報を収集すると、間違ったものがすぐに表示されます。

関連する問題