交换两个数的值的三种方法
方式一:亦或法(^运见博客Java基础—运算符)
int x =5, y = 7;
x = x ^ y;
y = x ^ y; -> y = x ^ y ^ y; -> y = x; -> y = 5;
x = x ^ y; -> x = x ^ y ^ x; -> x = y; -> x = 7;
方式二:加减法
int x = 3, y = 7;
x = x + y;
y = x - y; -> y = x + y - y; -> y = x; -> y = 3;
x = x - y; -> x = x + y - x; -> x = y; -> x = 7;
方式三:追尾法
int x = 3, y = 7;
int z = x;
x = y;
y = z;
扩展:三种方式的优劣性
亦或法的效率最高的,但是它的使用频率最低 --- 只能适用于整数值的交换
加减法的效率低于亦或法但是高于追尾法 --- 理论上适用于数值型
追尾法的效率最低的,但是它的使用频率最高 --- 适用于所有的类型