利用一個小技巧,一個整數a在異或另一個整數b兩次以后所得的值還是整數a。
具體的過程我們可以自己找兩個整數以二進制的形式自己在紙上畫一下他們的異或過程。(異或的運算符號為"^")
比如:

下面給出交換兩個整數位置的代碼,不需要臨時變量temp。
public class Aa {
public static void main(String[] args) {
int a = 3, b = 5;
System.out.println("before swap:" + "a=" + a + ",b=" + b);
// 開始交換位置
a = a ^ b;
b = a ^ b; // b=a^b^b=a
a = a ^ b; // a=a^b^a^b^b=b
System.out.println("after swap:" + "a=" + a + ",b=" + b);
}
}
運行結果:
before swap:a=3,b=5
after swap:a=5,b=3
