Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 排序数组时ArrayIndexOutOfBoundsException_Java_Arrays_Sorting_Object - Fatal编程技术网

Java 排序数组时ArrayIndexOutOfBoundsException

Java 排序数组时ArrayIndexOutOfBoundsException,java,arrays,sorting,object,Java,Arrays,Sorting,Object,我只想用sort方法对数字数组进行排序。但不幸的是,它抛出了一个错误: java.lang.ArrayIndexOutOfBoundsException:10 at Search.sort(Search.java:30)at Search.main(Search.java:67) 这是我的密码: import java.util.Scanner; public class Search { public Search() { System.out.println("inside

我只想用sort方法对数字数组进行排序。但不幸的是,它抛出了一个错误:

java.lang.ArrayIndexOutOfBoundsException:10 at Search.sort(Search.java:30)at Search.main(Search.java:67)

这是我的密码:

import java.util.Scanner;

public class Search {

  public Search() {
    System.out.println("inside a constructer");
  }

  public int[] sort(int x[]) {

    for (int i = 0; i < x.length - 1; i++)
      for (int j = 1; j < x.length; j++) {
        int temp;

        if (x[i] > x[j]) {
          temp = x[i];
          x[i] = x[j];
          x[j] = x[i];

        }

      }
    return x;
  }

  public static void main(String[] args) {
    // System.out.println("fgdg"+num);

    int num[] = new int[10];

    Scanner sc = new Scanner(System.in);

    System.out.println("Eneter the 10 integers:");

    for (int i = 0; i < 10; i++) {
      System.out.println("Enter the " + (i + 1) + " number:");
      num[i] = sc.nextInt();
    }

    System.out.println("before sorting:");
    for (int m = 0; m <= num.length; m++)
      System.out.println(num[m]);

    Search obj = new Search();
    int x1[] = obj.sort(num);

    System.out.println("sorted:");

    for (int k = 0; k <= x1.length; k++)
      System.out.println(x1[k]);
  }
}
import java.util.Scanner;
公共类搜索{
公开检索(){
System.out.println(“构造函数内部”);
}
公共整数[]排序(整数x[]){
对于(int i=0;ix[j]){
温度=x[i];
x[i]=x[j];
x[j]=x[i];
}
}
返回x;
}
公共静态void main(字符串[]args){
//系统输出打印项次(“fgdg”+num);
int num[]=新的int[10];
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入10个整数:”);
对于(int i=0;i<10;i++){
System.out.println(“输入”+(i+1)+“编号:”);
num[i]=sc.nextInt();
}
System.out.println(“排序前:”);

对于(int m=0;m将for条件更改为:

for (int i=0;i<x.length;i++)
    for(int j=1;j<x.length;j++){
       //your code
    }
}
for(int i=0;i
意味着您的数组有10个元素(长度=10),索引范围为0-9

将方法中的for循环更改为

for (int i=0;i<x.length;i++)
    for(int j=i+1;j<x.length;j++) 

排序方法中的j循环必须从i+1开始,而不是从1开始。

数组索引是从零开始的。 改变


for(int i=0;i
for(int i=0;i将for循环更改为此代码:

for (int i=0;i<x.length;i++)
    for(int j=i;j<x.length;j++)

for(int i=0;它不起作用……我认为最后一行obj.sort(num)有问题嘿,巴迪,这不是一个重复的问题,我又做了一些改变,但不起作用。还要更改中的前/后排序循环main@Rameez我刚刚运行了你的代码并编辑了我的答案,现在你应该设法让它工作。更改了它…但不再工作…请再次检查代码,因为我已经做了一些更改变量已分配但未使用。这是一个错误。
<= array.length
< array.length 
 if (x[i] > x[j]) {
      temp = x[i];
      x[i] = x[j];
      x[j] = temp;

    }
for (int i=0;i<=x.length;i++)
    for(int j=1;j<=x.length;j++)
for (int i=0;i<x.length;i++)
    for(int j=i;j<x.length;j++)
for (int m = 0; m <= num.length; m++)
        System.out.println(num[m]);
for (int k = 0; k <= x1.length; k++)
        System.out.println(x1[k]);
for (int i=0;i<=x.length;i++)
        for(int j=1;j<=x.length;j++)
    {
        int temp=0;

        if(x[i]>x[j])
        {
            temp=x[i];
            x[i]=x[j];
            x[j]=x[i];

        }


    }
for (int i=0;i<x.length;i++)
        for(int j=1;j<x.length;j++)
    {
        int temp=0;

        if(x[i]>x[j])
        {
            temp=x[i];
            x[i]=x[j];
            x[j]=temp;

        }


    }
for (int i=0;i<x.length;i++)
    for(int j=i;j<x.length;j++)