如何切换数组中的两个组件?
How to switch two components in an array?
我想知道如何切换数组中的组件。我的目标是按数字顺序重新排列这个数组,但是当我尝试时它不断抛出异常 "Index 22 out of bounds for length 9"
for (int i = 0; i < intArray.length - 1; i++) {
for (int j = 1; j < intArray.length - 1; j++)
if (intArray[j - 1] > intArray[j]) {
swap(intArray[j - 1], intArray[j], intArray);
}
System.out.print(intArray[i]);
System.out.print(" , ");
}
public static void swap(int a, int b, int[] arr) {
int x = arr[a];
arr[a] = arr[b];
arr[b] = x;
}
尝试传入索引而不是数组的值
即改变
if (intArray[j-1] > intArray[j]){
swap(intArray[j-1], intArray[j], intArray);
}
至
if (intArray[j-1] > intArray[j]){
swap(j-1, j, intArray);
}
你的最外层循环比 intArray
的最后一个元素少 1。
你可以使用
for (int i = 0; i < intArray.length; i++)
改为
我想知道如何切换数组中的组件。我的目标是按数字顺序重新排列这个数组,但是当我尝试时它不断抛出异常 "Index 22 out of bounds for length 9"
for (int i = 0; i < intArray.length - 1; i++) {
for (int j = 1; j < intArray.length - 1; j++)
if (intArray[j - 1] > intArray[j]) {
swap(intArray[j - 1], intArray[j], intArray);
}
System.out.print(intArray[i]);
System.out.print(" , ");
}
public static void swap(int a, int b, int[] arr) {
int x = arr[a];
arr[a] = arr[b];
arr[b] = x;
}
尝试传入索引而不是数组的值
即改变
if (intArray[j-1] > intArray[j]){
swap(intArray[j-1], intArray[j], intArray);
}
至
if (intArray[j-1] > intArray[j]){
swap(j-1, j, intArray);
}
你的最外层循环比 intArray
的最后一个元素少 1。
你可以使用
for (int i = 0; i < intArray.length; i++)
改为