今天温习了一下java基础,看到2个数的交换方法的时候,想到了以前的面试经历,总结了如下的3种方法
故而写来放在这里
1、使用异或实现交换
我们知道异或的原理就是如果2个数中对应的位上相同为0,相异为1 即任何数异或上其本身结果不变
public void swap(int a,int b){
a=a^b;
b=b^a;
a=a^b;
}
2、使用最简单的加减法
public void swap(int a,int b){
a=a+b;
b=a-b;
a=a-b;
}
3、最想不到加法和乘法
public void swap(int a,int b){
a=b+(b=a)*0;
}
希望各位拍砖