交换两个数 不使用中间变量

交换两个数是常见的需求。实际中我们经常采用的做法是通过一个tmp的中间变量来达到目的。但是如果我们现在不想使用那个中间变量,怎么破?so,以下提供两种方法

1.通过四则运算来实现

    @Test
    public void method_1() {
        int a = 3;
        int b = 4;
        a = a + b;
        b = a - b;
        a = a - b;
        System.out.println("a is: " + a);
        System.out.println("b is: " + b);
    }

此方法只有加法与减法运算,轻松即可满足需求。

2.通过亦或运算

    @Test
    public void method_2() {
        int a = 3;
        int b = 4;
        a ^= b;
        b ^= a;
        a ^= b;
        System.out.println("a is: " + a);
        System.out.println("b is: " + b);
    }

童鞋们请记住:一个数num连续跟同一个数亦或两次,得到的仍是num本身。

你可能感兴趣的:(interview)