java - 如何交换数组中的两个整数,其中我的方法从 main 中接收两个整数和一个数组?

标签 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;
}

我的代码产生

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

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

最佳答案

移动方法调用:-

swapper(3, 14, mainArr);

在 for 循环之外。因为,如果你的循环运行偶数次,它不会影响 数组。

此外,在实际交换元素之前,您需要先初始化数组。在调用 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] + " ");
}

关于java - 如何交换数组中的两个整数,其中我的方法从 main 中接收两个整数和一个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13056670/

相关文章:

java - 有没有一种简洁的方法可以根据 X.getY() 的顺序创建 Comparator<X>

java - 带有 Hystrix 断路器超时默认为 2 秒的 Spring Cloud Feign 客户端

java - 是什么原因导致 java.lang.IncompleteClassChangeError?

javascript - 组合来自不同变量的数组以随机填充 javascript

python - 创建要在 Python 中执行的方法列表

eclipse - 在 Eclipse 中自动生成的 Getter/Setter 之间留出空间

java - 从Object.notifyAll中唤醒的线程在哪里并且获取锁失败?

java - Eclipse 在调试时显示 Java 字节数组的红色值

c - 从函数返回字符数组打印垃圾值但在函数中打印正常?

java - 如何将字符串转换为整数、 double 型、 boolean 型(相同签名)?