Java不借助第三變量實現(xiàn)兩數(shù)交換的示例
更新時間:2022年02月17日 09:48:47 作者:負(fù)債程序猿
本文主要介紹了Java不借助第三變量實現(xiàn)兩數(shù)交換的示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
基操
兩數(shù)交換最簡單最容易理解的就是借助第三變量
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
}
進(jìn)階
利用數(shù)學(xué)計算
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
}
更進(jìn)階
利用異或運(yùn)算
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:不借助第三個變量實現(xiàn)兩個變量的交換(數(shù)字或者字符串)
//利用php spl標(biāo)準(zhǔn)類庫中的棧數(shù)據(jù)結(jié)構(gòu),先進(jìn)后出實現(xiàn) $a = 'abcde'; $b = 'efghi'; $stack = new SplStack(); $stack->push($a); $stack->push($b); $a = $stack->pop();//efghi $b = $stack->pop();//abcde //利用坐標(biāo)軸上的兩點距離數(shù)學(xué)計算? $a = 10; $b = 12; $a = $b - $a; $b = $b - $a;//10 $a ?= $b + $a;//12 //利用位運(yùn)算中的^ $a = 10; $b = 12; $a = $a ^ $b; $b = $b ^ $a; //10 $a = $a ^ $b; //12
到此這篇關(guān)于Java不借助第三變量實現(xiàn)兩數(shù)交換的示例的文章就介紹到這了,更多相關(guān)Java 兩數(shù)交換 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java基礎(chǔ)之多線程方法狀態(tài)和創(chuàng)建方法
Java中可以通過Thread類和Runnable接口來創(chuàng)建多個線程,下面這篇文章主要給大家介紹了關(guān)于Java基礎(chǔ)之多線程方法狀態(tài)和創(chuàng)建方法的相關(guān)資料,需要的朋友可以參考下2021-09-09
JAVA 多態(tài)操作----父類與子類轉(zhuǎn)換問題實例分析
這篇文章主要介紹了JAVA 多態(tài)操作----父類與子類轉(zhuǎn)換問題,結(jié)合實例形式分析了JAVA 多態(tài)操作中父類與子類轉(zhuǎn)換問題相關(guān)原理、操作技巧與注意事項,需要的朋友可以參考下2020-05-05
Springboot 中使用 Aop代碼實戰(zhàn)教程
AOP的編程思想是把對類對象的橫切問題點,從業(yè)務(wù)邏輯中分離出來,從而達(dá)到解耦的目的,增加代碼的復(fù)用性,提高開發(fā)效率,這篇文章主要介紹了Springboot中使用Aop代碼實戰(zhàn)教程,需要的朋友可以參考下2023-07-07
JS求多個數(shù)組的重復(fù)數(shù)據(jù)
這篇文章主要介紹了JS求多個數(shù)組的重復(fù)數(shù)據(jù)的辦法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-09-09

