本文小编为大家详细介绍“Java不借助第三变量怎么实现两数交换”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java不借助第三变量怎么实现两数交换”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
基操
两数交换最简单最容易理解的就是借助第三变量
public void swapOne(){ int a = 4; int b = 5; int c = a; a = b; b = c; System.out.println("a:"+a); //a:5 System.out.println("b:"+b); //a:4 }
进阶
利用数学计算
public void swapTwo(){ int a = 4; int b = 5; a=a+b; b=a-b; a=a-b; System.out.println("a:"+a); //a:5 System.out.println("b:"+b); //a:4 }
更进阶
利用异或运算
public void swapThree(){ int a = 4; int b = 5; a = a ^ b; // 0101 ^ 0100 ===> 0001,此时a的值为1 b = a ^ b; // 0001 ^ 0100 ===> 0101,此时b的值为5 a = a ^ b; // 0001 ^ 0101 ===> 0100,此时a的值为4 System.out.println("a:"+a); //a:5 System.out.println("b:"+b); //a:4 }
PS:不借助第三个变量实现两个变量的交换(数字或者字符串)
//利用php spl标准类库中的栈数据结构,先进后出实现$a = 'abcde';$b = 'efghi';$stack = new SplStack();$stack->push($a);$stack->push($b);$a = $stack->pop();//efghi$b = $stack->pop();//abcde//利用坐标轴上的两点距离数学计算 $a = 10;$b = 12;$a = $b - $a;$b = $b - $a;//10$a = $b + $a;//12//利用位运算中的^$a = 10;$b = 12;$a = $a ^ $b;$b = $b ^ $a; //10$a = $a ^ $b; //12
读到这里,这篇“Java不借助第三变量怎么实现两数交换”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。