Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java数组给出“;“线程中的异常”;“主要”;java.lang.ArrayIndexOutOfBoundsException:6“;_Java_Bubble Sort - Fatal编程技术网

Java数组给出“;“线程中的异常”;“主要”;java.lang.ArrayIndexOutOfBoundsException:6“;

Java数组给出“;“线程中的异常”;“主要”;java.lang.ArrayIndexOutOfBoundsException:6“;,java,bubble-sort,Java,Bubble Sort,这是源代码。我看不出此气泡排序代码有任何问题: int[] numbers = { 5, 8, 14, 1, 5678 }; int tempVar; for (int i = 0; i < numbers.length; i++) { for(int j = 0; j < numbers.length; j++) { if(numbers[i] > numbers[j + 1]) {

这是源代码。我看不出此气泡排序代码有任何问题:

int[] numbers = { 5, 8, 14, 1, 5678 };
int tempVar;
for (int i = 0; i < numbers.length; i++)
{
   for(int j = 0; j < numbers.length; j++)
   {
            if(numbers[i] > numbers[j + 1])
            {
                   tempVar = numbers [j + 1];
                   numbers [j + 1]= numbers [i];
                   numbers [i] = tempVar;
            }
   }
}
for (int i = 0; i < numbers.length; i++)
{
     System.out.println(numbers[i].toString());
}
int[]number={5,8,14,15678};
int-tempVar;
for(int i=0;i数字[j+1])
{
tempVar=数字[j+1];
数字[j+1]=数字[i];
数字[i]=tempVar;
}
}
}
for(int i=0;i
从基元数组中删除toString。请尝试以下代码

    int[] numbers = { 5, 8, 14, 1, 5678 };
    int tempVar;
    for (int i = 0; i < numbers.length; i++)
    {
       for(int j = i+1; j < numbers.length; j++)
       {
                if(numbers[i] > numbers[j])
                {
                       tempVar = numbers [j];
                       numbers [j]= numbers [i];
                       numbers [i] = tempVar;
                }
       }
    }
    for (int i = 0; i < numbers.length; i++)
    {
         System.out.println(numbers[i]);
    }
int[]number={5,8,14,15678};
int-tempVar;
for(int i=0;i数字[j])
{
tempVar=数字[j];
数字[j]=数字[i];
数字[i]=tempVar;
}
}
}
for(int i=0;i
ArrayIndexOutOfBoundsException在您尝试访问定义长度的数组时引发。您正在超出循环中的数组边界。而且循环中的逻辑似乎有点错误。请尝试以下操作:

    int[] numbers = { 5, 8, 14, 1,5678};
    int tempVar;
    for (int i = 0; i < (numbers.length - 1); i++)
    {
       for(int j = 0; j < (numbers.length-1); j++)
       {
                if(numbers[j] > numbers[j + 1])
                {
                       tempVar = numbers [j];
                       numbers [j]= numbers [j + 1];
                       numbers [j+1] = tempVar;
                }
       }
    }
    for (int i = 0; i < numbers.length; i++)
    {
         System.out.println(numbers[i]);
    }
int[]number={5,8,14,15678};
int-tempVar;
对于(int i=0;i<(numbers.length-1);i++)
{
对于(int j=0;j<(数字长度-1);j++)
{
如果(数字[j]>数字[j+1])
{
tempVar=数字[j];
数字[j]=数字[j+1];
数字[j+1]=tempVar;
}
}
}
for(int i=0;i
numbers[]是一个基本整数数组。如何对其中一个元素调用toString()?这个问题与您现在正在研究的内容非常相关,我怀疑它是否构成了有用的知识库。我的建议是:使用调试器。仔细查看,直到抛出异常,您将得到您的答案是的,删除.toString()@Liam-我想教一个人钓鱼,而不是给他一条鱼。否则,我们只是鼓励人们将琐碎的编译器/运行时错误外包给堆栈溢出…@AndrzejDoyle很好,我在发布时没有看到你的评论。