如何在java中修复数组索引越界?

如何在java中修复数组索引越界?,java,Java,下面的java代码有一个问题,它返回的数组索引超出了范围。有人能帮我解决这个问题吗 public static double calculateMedian(int[] arr) { int[] sortedArr = bubbleSort(arr); //this code returns ArrayIndexOutOfBoundsException } public static int[] bubbleSort(int[] arr) { boolean perform

下面的java代码有一个问题,它返回的数组索引超出了范围。有人能帮我解决这个问题吗

public static double calculateMedian(int[] arr) {

    int[] sortedArr = bubbleSort(arr); //this code returns ArrayIndexOutOfBoundsException 
}

public static int[] bubbleSort(int[] arr) {
    boolean performedSwap = true;
    int tempValue = 0;

    while(performedSwap) {
        performedSwap = false;

        for (int i=0; i < arr.length; i++) {
            if (arr[i] > arr[i+1]) {
            tempValue = arr[i];
            arr[i] = arr[i+1];
            arr[i+1] = tempValue;

            performedSwap = true;
            }
        }
    }
    return arr;
}

arr.Length
的值过大或为空。因此,为了不踩到该空值,您应该在循环内
-1
您的
arr.Length

for (int i=0; i < arr.length -1; i++) {
            if (arr[i] > arr[i+1]) {
            tempValue = arr[i];
            arr[i] = arr[i+1];
            arr[i+1] = tempValue;

            performedSwap = true;
            }
        }
for(int i=0;iarr[i+1]){
tempValue=arr[i];
arr[i]=arr[i+1];
arr[i+1]=临时值;
performedSwap=true;
}
}

post代码无法编译,因此您的输出与您的post不匹配。您正在循环,直到长度小于该长度,然后调用索引+1。由于您正在向前看,您只需循环直到
i
Downvote,因为这个问题在不同的问题中得到了回答。在提问之前,请尝试搜索您的代码,并将其与本网站上其他问题提供的解决方案进行比较。
for (int i=0; i < arr.length -1; i++) {
            if (arr[i] > arr[i+1]) {
            tempValue = arr[i];
            arr[i] = arr[i+1];
            arr[i+1] = tempValue;

            performedSwap = true;
            }
        }