Ich habe ein Programm geschrieben, wo, wenn das Array-Set sagen wir {1, 3, 6, 7, 12}, es seine minimale Lücke zwischen zwei Zahlen zurückgibt. Mit anderen Worten, es werden zuerst die Unterschiede zwischen 3 und 1, 6 und 3, 7 und 6 und 12 und 7 gefunden. Nachdem ihre Unterschiede erreicht sind, wird sie die geringste Differenz, in unserem Fall 1, seit 6-7, zurückgeben = 1. Wenn wir beispielsweise eine Array-Menge von {60} erhalten, gibt das Programm 0 zurück. Wenn wir nun eine Array-Menge von {} hätten, in der nichts drin ist, gibt es auch 0 zurück. Jedoch kann ich mein Programm nicht dazu bringen, eine 0 zurückzugeben! Es löst eine Ausnahme aus. Was habe ich verpasst? Wie soll ich dieses Problem lösen? Hier ist mein Programm so weit:Wie überprüft man, ob ein Array leer ist?
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;
}
}
Vielen Dank im Voraus!
Dies ist nicht das, was das OP-Problem verursacht. Er bekommt eine Ausnahme, weil er NICHT die Länge testet, bevor er sie benutzt ... und er benutzt sie, indem er versucht, ein Array mit der Länge -1 zu erzeugen. –