如何在java中修复数组索引越界?
下面的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
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;
}
}