如何切换数组中的两个组件?

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++)

改为