私は、配列セットが{1,3,6、7,12}と言われた場合、2つの数字の間に最小ギャップを返すプログラムを書いています。言い換えれば、最初に3と1と6と3と7と6と12と7の違いを見つけます。その差が達成された後、6-7 = 1。 たとえば{60}の配列セットが与えられた場合、プログラムは0を返します。 配列のセットが{}の場合、何も入っていない配列も0を返します。しかし、私は0を返す私のプログラムを得ることができません!例外をスローします。私は何を取りこぼしたか?この問題をどのように解決すればよいですか?これまでの私のプログラムです:配列が空であるかどうかをチェックする方法?
public static void main(String[] args) {
int[] numberSet = {1, 3, 6, 7, 12};
//int[] numberSet = {};
System.out.println(minGap(numberSet));
}
public static int minGap(int[] numberSet) {
int[] differenceArray = new int[numberSet.length-1];
int smallestNum = 0;
if (numberSet.length < 2) {
return 0;
}
else {
for(int i = 0; i < numberSet.length-1; i++) {
differenceArray[i] = numberSet[i+1] - numberSet[i];
}
Arrays.sort(differenceArray);
smallestNum = differenceArray[0];
return smallestNum;
}
}
ありがとうございます!配列がnullで確認するには
これは、OPの問題を引き起こしているものではありません。彼はそれを使用する前に長さをテストしていないので例外を受け取りました。そして結果として、長さが '-1'の配列を作成しようとしています。 –