如果您想知道,我不是想简单地首先对具有最小数字的数组进行排序,而是尝试通过首先显示数字最接近 0 的数组列表来对数组进行排序。
它适用于数组中的某些元素,但是当它需要向后遍历数组时,它不会......它只是抛出一个超出范围的异常
这是我的代码:
package SSTF;
public class test2 {
public static void main (String[] args)
{
int[] temp_array = {9, 22, 3, -4, 5, 8};
for(int i =0; i<temp_array.length; i++)
{
System.out.print(temp_array[i] + " ");
}
System.out.println("\n\nNumbers closest to 0:\n");
closestToZero(temp_array);
}
public static void closestToZero(int[] array)
{
int num = array[0];
int absNum = Math.abs(num);
for(int i = 1; i < array.length; ++i)
{
int newAbs = Math.abs(array[i]);
if(newAbs < absNum)
{
absNum = newAbs;
num = array[i];
for(int j=0; j<array.length; j++)
{
System.out.print(array[i+j] + " ");
}
}
}
}
}
我真的希望这只是一件小事,有人可以提供帮助,因为我不知道如何解决它:S
输出:
9 22 3 -4 5 8
Numbers closest to 0:
3 -4 5 8 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
at SSTF.test2.closestToZero(test2.java:42)
at SSTF.test2.main(test2.java:18)