我已經寫了一個程序,如果數組集合是讓我們說{1,3,6,7,12},它將返回兩個數字之間的最小差距。換句話說,它會首先找到3和1,6和3,7和6以及12和7之間的差異。達到差異後,它將返回最小差異,在我們的情況1中,自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;
}
}
在此先感謝!
這些不是什麼導致OP的問題。他正在得到一個異常,因爲他在使用它之前沒有測試長度......並且通過嘗試創建長度爲「-1」的數組來使用它。 – 2013-02-10 07:20:31