Java不借助第三变量怎么实现两数交换
短信预约 -IT技能 免费直播动态提醒
本文小编为大家详细介绍“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不借助第三变量怎么实现两数交换”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341