Java變量交換的幾種方式

傳統方式

int a = 100; 
int b = 200;

int temp = a;
a = b;
b = temp;

求和相減:

int x =5,y=10; //定義兩個變量

x = x + y;        //x(15) = 5 + 10;
y = x - y;        //y(5) = x(15) - 10;        
x = x - y;        //x(10) = x(15) - y(5)

異或方式

/**
 * 異或運算法則 
 * 1. a ^ b = b ^ a 
 * 2. a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c; 
 * 3. d = a ^ b ^ c 可以推出 a = d ^ b ^ c. 
 * 4. a ^ b ^ a = b.
 */
int a = 100;
int b = 200;
a = a ^ b; // a = 100 ^ 200 = 175
b = a ^ b; // b = 175 ^ 200 = 100
a = a ^ b; // a = 175 ^ 100 = 100 ^ 200 ^ 100 = 200

異或方式(一行代碼)

int x = 100;
int y = 200;
// 100 ^ (x=y) x = 200
// 100 ^ 200 ^ 200 y = 100
y = x ^ (x = y) ^ y;

推薦使用最後一種方式,注意:異或方式無法對對象進行操作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章