java如何交换数值
交换数值的方法
在Java中交换两个变量的数值有多种方法,以下是几种常见的方式:
使用临时变量
通过引入一个临时变量来暂存其中一个变量的值,实现交换。
int a = 5;
int b = 10;
int temp = a;
a = b;
b = temp;
System.out.println("a: " + a + ", b: " + b); // 输出: a: 10, b: 5
使用加减法
通过加减法运算实现交换,无需临时变量。
int a = 5;
int b = 10;
a = a + b; // a = 15
b = a - b; // b = 5
a = a - b; // a = 10
System.out.println("a: " + a + ", b: " + b); // 输出: a: 10, b: 5
使用异或运算
利用异或运算的特性实现交换,避免溢出问题。
int a = 5;
int b = 10;
a = a ^ b; // a = 15 (二进制 1111)
b = a ^ b; // b = 5 (二进制 0101)
a = a ^ b; // a = 10 (二进制 1010)
System.out.println("a: " + a + ", b: " + b); // 输出: a: 10, b: 5
使用数组或对象
通过数组或对象封装需要交换的变量,实现交换。
int[] arr = {5, 10};
int temp = arr[0];
arr[0] = arr[1];
arr[1] = temp;
System.out.println("arr[0]: " + arr[0] + ", arr[1]: " + arr[1]); // 输出: arr[0]: 10, arr[1]: 5
使用Java方法
通过方法传递引用或数组,实现交换。

public class SwapExample {
public static void swap(int[] arr) {
int temp = arr[0];
arr[0] = arr[1];
arr[1] = temp;
}
public static void main(String[] args) {
int[] arr = {5, 10};
swap(arr);
System.out.println("arr[0]: " + arr[0] + ", arr[1]: " + arr[1]); // 输出: arr[0]: 10, arr[1]: 5
}
}
注意事项
- 使用加减法或异或运算时需注意数值范围,避免溢出。
- 对于对象类型的交换,直接操作引用即可。
- 方法内交换基本类型变量时,需通过数组或对象包装实现。






