如何在数组中交换两个整数,其中我的方法采用两个整数和一个来自main的数组?

per*_*g93 0 java arrays methods integer program-entry-point

我在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;
}
Run Code Online (Sandbox Code Playgroud)

我的代码产生了

0, 1,  2, 3,...19 
Run Code Online (Sandbox Code Playgroud)

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

Roh*_*ain 5

移动方法调用: -

swapper(3, 14, mainArr);
Run Code Online (Sandbox Code Playgroud)

在你的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] + " ");
}
Run Code Online (Sandbox Code Playgroud)