Java不借助第三变量实现两数交换的示例

 更新时间:2022年02月17日 09:48:47   作者:负债程序猿  
本文主要介绍了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不借助第三变量实现两数交换的示例的文章就介绍到这了,更多相关Java 两数交换 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • druid return行为方法源码示例解析

    druid return行为方法源码示例解析

    这篇文章主要为大家介绍了druid return行为源码示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • Java基础之多线程方法状态和创建方法

    Java基础之多线程方法状态和创建方法

    Java中可以通过Thread类和Runnable接口来创建多个线程,下面这篇文章主要给大家介绍了关于Java基础之多线程方法状态和创建方法的相关资料,需要的朋友可以参考下
    2021-09-09
  • JAVA 多态操作----父类与子类转换问题实例分析

    JAVA 多态操作----父类与子类转换问题实例分析

    这篇文章主要介绍了JAVA 多态操作----父类与子类转换问题,结合实例形式分析了JAVA 多态操作中父类与子类转换问题相关原理、操作技巧与注意事项,需要的朋友可以参考下
    2020-05-05
  • SpringBoot项目从搭建到发布一条龙

    SpringBoot项目从搭建到发布一条龙

    这篇文章主要介绍了SpringBoot项目从搭建到发布一条龙,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • 一文详解Java线程中的安全策略

    一文详解Java线程中的安全策略

    Java中的线程到底有哪些安全策略呢?这篇文章将详细为大家分析一下。文中的示例代码讲解详细,对我们学习或工作有一定帮助,需要的可以参考一下
    2022-05-05
  • Java基于Lock的生产者消费者模型示例

    Java基于Lock的生产者消费者模型示例

    这篇文章主要介绍了Java基于Lock的生产者消费者模型,结合实例形式分析了java基于锁机制的生产者消费者模型相关实现与使用技巧,需要的朋友可以参考下
    2018-08-08
  • Springboot 中使用 Aop代码实战教程

    Springboot 中使用 Aop代码实战教程

    AOP的编程思想是把对类对象的横切问题点,从业务逻辑中分离出来,从而达到解耦的目的,增加代码的复用性,提高开发效率,这篇文章主要介绍了Springboot中使用Aop代码实战教程,需要的朋友可以参考下
    2023-07-07
  • IDEA 2021配置JavaWeb项目超详细教程

    IDEA 2021配置JavaWeb项目超详细教程

    本文通过图文并茂的形式给大家介绍IDEA 2021配置JavaWeb项目的过程,内容简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-08-08
  • JS求多个数组的重复数据

    JS求多个数组的重复数据

    这篇文章主要介绍了JS求多个数组的重复数据的办法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • Java实现几种常见排序算法代码

    Java实现几种常见排序算法代码

    排序(Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个关键字有序的序列
    2013-09-09

最新评论