我在main中调用我的swap方法,但它没有任何改变。我究竟做错了什么?

public static void main(String[] args){


    int mainArr[] = new int[20];

    for(int i = 0; i<mainArr.length; i++){
    swapper(3, 14, mainArr);
    System.out.print(i + mainArr[i] + " ");
    }
}


public static void swapper (int a, int b, int[] mainArr){
    int t = mainArr[a];
    mainArr[a] = mainArr[b];
    mainArr[b] = t;
}


我的代码产生

0, 1,  2, 3,...19


以正常的升序排列,我希望它交换第4个和第15个元素。

最佳答案

移动方法调用:-

swapper(3, 14, mainArr);


在您的for循环之外。因为,如果您的循环运行even次数,则不会影响
数组。

另外,您需要先初始化数组,然后才能实际交换元素。调用swapper之前需要执行的操作。

for(int i = 0; i<mainArr.length; i++){
    mainArr[i] = i;
}

swapper(3, 14, mainArr);

for(int i = 0; i<mainArr.length; i++){
    System.out.print(i + mainArr[i] + " ");
}

10-04 12:59