我已经写了一个程序,如果数组集合是让我们说{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