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

我在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 

编写代码如下:

 int mainArr[] = new int[20]; for(int i =0; i  

将解决这个问题。 问题是你碰巧调用了偶数次,所以它总是没有效果。

您调用swapper的次数与数组中的元素相同。

  • 如果数组具有偶数长度,则不会发生任何变化
  • 如果数组具有奇数长度,则它将改变
 public class swapInt { public static void main(String args[]) { swap(new int[]{2,3,5,6,8},1,3); } public static void swap(int[]a,int i,int j) { int temp=a[i]; a[i]= a[j]; a[j]=temp; for(int b=0;b