【问题标题】:How to interchange assignment of values in Java the most efficient way?如何以最有效的方式交换 Java 中的值分配?
【发布时间】:2025-12-13 08:20:05
【问题描述】:

假设我有以下变量:

int x = 1;
int y = 2;
//some calculations follow(x and y stay the same init values) that somehow require you to interchange the values of y and x

如何在一行代码中设置 y = 1 和 x = 2??

【问题讨论】:

    标签: java variable-assignment


    【解决方案1】:

    不知道为什么这是必要的,但你可以这样做:

    int x = 2, y = 1;
    

    【讨论】:

    • 是的,但我必须在计算后交换它们
    • 刚才的问题是问如何在一行上分配x = 2y = 1。如果您想知道如何交换存储在xy 中的值,那是一个完全不同的问题。在这种情况下,你会想做int z = x, x = y, y = z;
    • 是的好答案.. 但我希望有一种方法,您不必在内存中存储额外的变量。
    • 这似乎是溢出变量的好方法。
    【解决方案2】:

    尝试使用按位 XOR(^) 运算符。

    x = x ^ y ^ (y = x);
    

    您完成的代码可能看起来像,

        class Main
    {
        public static void main (String[] args)
        {
            int x = 1, y = 2;
            x = x ^ y ^ (y = x);
            System.out.println("x after swapping:\nx="+x+"\ny after swapping,\ny="+y);
        }
    }
    

    【讨论】:

    • 这行怎么解释:x = x ^ y ^ (y = x);
    • youtube.com/watch?v=07VQR78Kzm0这里有一个视频可以帮助你。
    • 是的,但是当您运行代码时 x = 1 和 y = 2 .. 我需要 y = 1 和 x = 2
    • 假设在x = x ^ y ^ (y = x)之后有print语句
    • x = x + y - (y = x);试试这个而不是那个异或运算语句
    最近更新 更多