2 monologue8664 monologue8664 于 2016.09.20 15:41 提问

java数组越界??是怎么回事

public class SelectSort
{
public void sort (int[] array)
{
int index;
for (int i = 0; i < array.length-1; i++)
{
index=0;
for (int j = 0; j < array.length-i-1; j++)
{
if(array[j]>array[index])
{
index=j;
}

    }
    int temp=array[array.length-i];
    array[array.length-i]=array[index];
    array[index]=temp;
  }
  showArray(array);

}
/*

  • 显示数组织中的所有元素
    */

    public void showArray(int[] array)
    {
    for (int i : array)
    {
    System.out.print(">"+i);
    }
    System.out.println();
    }

}
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
at SelectSort.sort(SelectSort.java:18)
at Quick.main(Quick.java:9)

2个回答

seeze
seeze   2016.09.20 15:48

array[array.length-i]
i=0时就越界了

zhuzige521888
zhuzige521888   2016.09.20 16:02

1、首先异常时越界了,同1楼array[array.length-i], i=0时越界了 应为:array[array.length-i-1]
2、排序的话用Arrays.sort()就行了。
int[] a = {1,2,3,4};
Arrays.sort(a);

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!