Arrays java.lang.ArrayIndexOutOfBoundsException:不工作

Arrays java.lang.ArrayIndexOutOfBoundsException:不工作,arrays,Arrays,为什么我会犯这个错误?我试图在int数组中从小到大排序并打印它,但它不起作用。我得到了这个错误 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 10 out of bounds for length 10 at Bubblesort.bubbleSort(Bubblesort.java:26) at Bubblesort.main(Bubble

为什么我会犯这个错误?我试图在int数组中从小到大排序并打印它,但它不起作用。我得到了这个错误

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 10 out of bounds for length 10
        at Bubblesort.bubbleSort(Bubblesort.java:26)
        at Bubblesort.main(Bubblesort.java:47)
源代码:

class Bubblesort {
    
    static String arrayToString(int[] arr){
        for (int i = 0; i < arr.length ; i++ ){ 
        System.out.print(arr[i]);
        System.out.print(",");
        }
        return null;
        
    }
    
    static int[] randomArray(int n) {
        java.util.Random rand = new java.util.Random();
        int[] array = new int[n];
        for (int i = 0; i < n ; i++ ){ 
            int random = rand.nextInt(99);
            array[i] = random;
        }
        return array;   
    }

    
    static void bubbleSort(int[] arr){
        for ( int i = 0; i < arr.length ; i++ ) {
            if ( arr[i] > arr[i+1] ) {
                arr[i] = arr[i+1];
                arr[i+1] = arr[i];
            } else {
                arr[i] = arr[i];    
            }
        }
    }                                 
    


public static void main (String[] args) {

    int[] test10 = randomArray(10);
    int[] test20 = randomArray(20);
    int[] test30 = randomArray(30);
    
    arrayToString(test10);
    System.out.println("");
    arrayToString(test20);
    System.out.println("");
    arrayToString(test30);
    System.out.println("");
    

    bubbleSort(test10);
    arrayToString(test10);
    System.out.println("");
    
    
    
    }
类Bubblesort{
静态字符串arrayToString(int[]arr){
对于(int i=0;iarr[i+1]){
arr[i]=arr[i+1];
arr[i+1]=arr[i];
}否则{
arr[i]=arr[i];
}
}
}                                 
公共静态void main(字符串[]args){
int[]test10=随机数组(10);
int[]test20=随机数组(20);
int[]test30=随机数组(30);
数组字符串(test10);
System.out.println(“”);
数组字符串(test20);
System.out.println(“”);
数组字符串(test30);
System.out.println(“”);
气泡运动(test10);
数组字符串(test10);
System.out.println(“”);
}

您的数组有十个元素,索引范围从0到9

bubblesort
函数中的
for
循环中,迭代所有这些元素,让
i
从零变为九


这里要做的第一件事是比较
arr[i]
arr[i+1]
。当
i
是9时,这意味着你试图将
arr[9]
arr[10]
进行比较。但是没有
arr[10]这样的东西
。您的数组索引超出范围,因此您试图将bubblesort函数中的
ArrayIndexOutOfBoundsException

与arr[i+1]进行比较