Bir program yazdım, burada dizinin ayarlanması durumunda {1, 3, 6, 7, 12} diyelim, iki sayı arasındaki minimum boşluğa dönecektir. Diğer bir deyişle, öncelikle 3 ile 1, 6 ve 3, 7 ve 6, 12 ve 7 arasındaki farkları bulacaktır. Farklılıkları elde edildikten sonra, 6-7'den beri bizim durumumuzda en az farkı geri getirecektir. = 1. Eğer bir dizi {60} kümesi verildiyse, örneğin, program 0 değerini döndürecektir. Şimdi bir dizinin {} olduğu, hiçbir şeyin içinde olmadığı bir dizi varsa 0 da dönecektir. Ancak, programımı 0'a döndüremem! Bir istisna atar. Ne kaçırdım? Bu sorunu nasıl çözmeliyim? Programım şu ana kadar:Dizinin boş olup olmadığını nasıl kontrol edebilirim?
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;
}
}
Şimdiden teşekkürler! dizi kontrol etmek için
Bunlar OP'nin sorununa neden olan değil. Bir istisna oluyor çünkü onu kullanmadan önce uzunluğu test etmiyor ... ve sonuç olarak '-1' uzunluğunda bir dizi oluşturmaya çalışarak kullanıyor. –