java - 为什么我的 java 交换功能不起作用?

标签 java swap

<分区>

我正在尝试在 java 中创建一个交换函数,但为什么它不起作用?

void swap(int a, int b) {
   int temp = a;
   a = b;
   b = temp;
}

最佳答案

因为java是pass by value而不是通过引用传递。您的交换方法不会更改实际的 ab。您实际上已经交换了 ab生活只在方法里面。您可以通过在 swap 方法中打印 ab 来检查这一点。

您可以返回在数组的帮助下交换的值。 (由 sᴜʀᴇsʜ ᴀᴛᴛᴀ 首先添加)

public class Test {

    static int[] swap(int a, int b) {
       return new int[]{b,a};
    }

    public static void main(String[] args) {
        int a = 10,b = 5;
        int[] ba = swap(a,b);
        a = ba[0];
        b = ba[1];
        System.out.println(a);
        System.out.println(b);
    }

}

关于java - 为什么我的 java 交换功能不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32804905/

相关文章:

java - Spring 批处理 : different job launcher for different jobs

java - 如何以指定的时间间隔自动定期调用 servlet

amazon-web-services - RDS 吃掉所有交换空间

C 链表中的冒泡排序

java - Tomcat关闭: class loading during contextDestroyed does not work

java - poi-ooxml-schemas-3.14 JAR 中缺少 STSheetViewType 类

linux - 如何将 "memory priority"分配给 linux 进程?

c++ - 使用 std::stack 和 std::map 内存使用率意外高

Java-8:如何在忽略区分大小写的情况下使用 Map.Entry#comparingByValue 对 Map(基于值)进行排序?

c++ - 何时在 C++ 中提供自定义交换函数?