Java两个变量的互换(不借助第三个变量)是一个常见面试题,面试者需要实现一种方法,使得交换两个变量的值而不借助第三个变量。本文将详细讲解一些实现方法及其代码示例。
通过加法和减法实现两个变量的互换的方法如下。
a = a + b;
b = a - b;
a = a - b;
其中a和b是要交换的两个变量。首先将a和b相加得到a + b的结果,然后将结果赋给a,即a = a + b。接着,将a中的值减去原来的b的值,将结果赋给b,即b = a - b。最后,将a中的值减去原来的b的值,将结果赋给a,即a = a - b。这样,a和b的值就完成了交换。
代码示例:
public class SwapTwoVariables {
public static void main(String[] args) {
int a = 10, b = 20;
System.out.println("Before swapping, a = " + a + " and b = " + b);
a = a + b;
b = a - b;
a = a - b;
System.out.println("After swapping, a = " + a + " and b = " + b);
}
}
输出结果:
Before swapping, a = 10 and b = 20
After swapping, a = 20 and b = 10
通过位运算实现两个变量的互换的方法如下。
a = a ^ b;
b = a ^ b;
a = a ^ b;
其中a和b是要交换的两个变量。首先将a和b进行异或运算,得到一个新的值,并将它赋给a,即a = a ^ b。接着,将a与原来的b进行异或运算,得到原来的a,并将它赋给b,即b = a ^ b。最后,将b与原来的a进行异或运算,得到原来的b,并将它赋给a,即a = a ^ b。这样,a和b的值就完成了交换。
代码示例:
public class SwapTwoVariables {
public static void main(String[] args) {
int a = 10, b = 20;
System.out.println("Before swapping, a = " + a + " and b = " + b);
a = a ^ b;
b = a ^ b;
a = a ^ b;
System.out.println("After swapping, a = " + a + " and b = " + b);
}
}
输出结果:
Before swapping, a = 10 and b = 20
After swapping, a = 20 and b = 10
这两种方法都可以实现两个变量的互换,但是第二种方法使用了位运算,因此可能更加高效。