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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
数组越界的一点心得
今天上午写个c++下的string split函数,遇到了一个非常有趣的现象。没当程序运行结束的时候,都会提示堆栈溢出。出错的部分大概是这样的:while(ifs.good()) { ifs>>str; cout
读取文件时用String的split()函数出现数组越界,但是实际应该有值
读取文件时用String的split()函数分割文件内容时报错,数组越界。但是实际分割后的字符串应该有值的。 看了一下split()函数的底层实现通过正则pattern的compile()方法实现的。 然后发现切割后的汉字是乱码的,编译的是utf-8,读的文件是GBK的,应该汉字编码长度不同导致的split()切割后的数组越界! 结论:不同编码格式读文件用split()可能导致数组越
Java数组越界问题
测试了 好久 总有错误,后来才发现是数组越界了 分享一下,希望能对大家有帮助 //时间:2013.10.30 //程序功能: 对学生成绩排序并且对应输出  //通过两个数组分别存储名字 和 成绩  然后降序排列输出 import java.util.Scanner; public class StudentSort { public static void main(S
java中两大异常:空指针异常和数组越界异常
一、空指针异常   空指针异常是运行期的异常,编译的时候是不会检查的,只有运行的时候才会抛出,一般情况下如果出现了空指针异常,事先你不知道会有这个异常,就说明你的程序有bug,当然就要找出这个bug,然后在变量调用之前先给它赋值,另外有一种情况,你事先知道某个操作会抛出空指针异常,常见一些非法的操作,但是又无法避免用户执行这个操作,就可以通过try,catch块捕获这个异常,然后给用户一个反馈信
15_09_15 ( ArrayIndexOutOfBoundsException ) 数组下标越界异常
此处错误是因为打印的数组数目超过数组内最多允许传递数目
关于Java中数组越界问题
java中对数组越界有着严格的规定,但是你的程序编译会通过,只不过在执行时会出现下列一行文字 “Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException” 我在写关于约瑟夫环的时候遇到了这个,当然也是本人的粗心大意,因为以往的C++以及C编程中并未严格的控制数组越界,所以即使在C,C++中能执行这样的越界编译的代码,
出现数组越界解决办法
int num = 0; for(int i=0;i<endWeigheArray.length;i++) { int len = diamondpriceIdArray.length; num++; String id = num <= len ? diamondpriceIdArray[i
使用Split分割字符串出现数组越界异常java.lang.ArrayIndexOutOfBoundsException
昨天使用Split分割字符串出现数组越界异常,总结了一下。 出现java.lang.ArrayIndexOutOfBoundsException很可能是在后面去String数组的下标超过了数组的最大长度,所以就出现了数组越界的问题。 解決方法: 在java.lang包中有String.split()方法,返回是一个数组: 1、如果用“.”作为分隔的话,必须是如下写法:String.s
两道“诡异”的数组越界问题的分析
1、数组越界引起的死循环问题:#include "stdafx.h"int main(int argc, char* argv[]) { int i = 0; int arr[3] = {0}; for(i = 0; i<=3; i++){ arr[i] = 0; printf("hello world\n"); } return
[笔记]关于split的数组越界问题以及java.lang.ArrayIndexOutOfBoundsException异常
原帖: http://bbs.csdn.net/topics/320263980 问题内容: 今天写了个字符串拼接程序,中间用到了split方法。但在测试的时候。总是报数组越界错误:java.lang.ArrayIndexOutOfBoundsException ; 我写的测试代码如下: public class transferpic { public static St