Tôi đã viết một chương trình trong đó nếu tập hợp mảng là giả sử {1, 3, 6, 7, 12}, nó sẽ trả về khoảng cách tối thiểu giữa hai số. Nói cách khác, đầu tiên nó sẽ tìm thấy sự khác biệt giữa 3 và 1, 6 và 3, 7 và 6, và 12 và 7. Sau khi sự khác biệt của chúng đạt được, nó sẽ trả về sự khác biệt nhỏ nhất, trong trường hợp của chúng ta 1, kể từ 6-7 = 1. Nếu chúng ta được đưa ra một tập hợp mảng {60}, ví dụ, chương trình sẽ trả về 0. Bây giờ nếu chúng ta có một tập hợp mảng {}, không có gì bên trong, nó cũng sẽ trả về 0. Tuy nhiên, tôi không thể có được chương trình của tôi để trả về 0! Nó ném một ngoại lệ. Tôi đã bỏ lỡ cái gì? Tôi nên giải quyết vấn đề này như thế nào? Đây là chương trình của tôi cho đến nay:Cách kiểm tra xem một mảng có trống không?
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;
}
}
Cảm ơn bạn trước!
Đây không phải là những gì gây ra sự cố của OP. Anh ta nhận được một ngoại lệ vì anh ta KHÔNG kiểm tra độ dài trước khi anh ấy sử dụng nó ... và anh ấy đang sử dụng nó bằng cách cố tạo một mảng có độ dài '-1'. –