Napisałem program, w którym jeśli zbiór macierzyński nazywa się {1, 3, 6, 7, 12}, zwróci on swoją minimalną przerwę między dwiema liczbami. Innymi słowy, najpierw odkryje różnice między 3 a 1, 6 i 3, 7 i 6 oraz 12 i 7. Po osiągnięciu różnic, zwróci najmniejszą różnicę, w naszym przypadku 1, od 6-7 = 1. Jeśli na przykład otrzymamy zestaw tablic {60}, program zwróci 0. Teraz, jeśli mamy zestaw tablic {}, gdzie nic nie jest w środku, to zwróci również 0. Jednak nie mogę uzyskać programu, który zwróci 0! Zgłasza wyjątek. Co mnie ominęło? Jak mam rozwiązać ten problem? Oto mój program do tej pory:Jak sprawdzić, czy tablica jest pusta?
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;
}
}
Z góry dziękuję!
To nie jest przyczyna problemu PO. Dostaje wyjątek, ponieważ NIE bada długości, zanim go użyje ... i używa go, próbując utworzyć tablicę o długości '-1". –