Java中交换两个数的位置,通常可以通过多种方法实现,以下是一些常见且简单的方法,我们将一一介绍。

使用临时变量交换
最直观的方法是使用一个临时变量来辅助交换两个数的位置。
public class SwapNumbers {
public static void main(String[] args) {
int a = 5;
int b = 10;
System.out.println("Before swap: a = " + a + ", b = " + b);
// 使用临时变量交换
int temp = a;
a = b;
b = temp;
System.out.println("After swap: a = " + a + ", b = " + b);
}
}
使用加减法交换
另一种方法是使用加减法来交换两个数,这种方法不需要额外的临时变量。
public class SwapNumbers {
public static void main(String[] args) {
int a = 5;
int b = 10;
System.out.println("Before swap: a = " + a + ", b = " + b);
// 使用加减法交换
a = a + b;
b = a - b;
a = a - b;
System.out.println("After swap: a = " + a + ", b = " + b);
}
}
使用位运算交换
位运算是一种高效的交换方法,特别是对于整数类型的交换。

public class SwapNumbers {
public static void main(String[] args) {
int a = 5;
int b = 10;
System.out.println("Before swap: a = " + a + ", b = " + b);
// 使用位运算交换
a = a ^ b;
b = a ^ b;
a = a ^ b;
System.out.println("After swap: a = " + a + ", b = " + b);
}
}
使用数组交换
如果两个数不是基本数据类型,或者你想使用一个更通用的方法来交换任何两个对象,可以使用数组来辅助交换。
public class SwapNumbers {
public static void main(String[] args) {
int[] numbers = {5, 10};
System.out.println("Before swap: numbers[0] = " + numbers[0] + ", numbers[1] = " + numbers[1]);
// 使用数组交换
int temp = numbers[0];
numbers[0] = numbers[1];
numbers[1] = temp;
System.out.println("After swap: numbers[0] = " + numbers[0] + ", numbers[1] = " + numbers[1]);
}
}
使用Java 8的Stream API交换
Java 8引入了Stream API,虽然这不是交换两个变量的传统方法,但可以作为一种有趣的替代。
import java.util.Arrays;
import java.util.List;
public class SwapNumbers {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(5, 10);
System.out.println("Before swap: numbers = " + numbers);
// 使用Stream API交换
numbers.set(0, numbers.get(0) + numbers.get(1));
numbers.set(1, numbers.get(0) - numbers.get(1));
numbers.set(0, numbers.get(0) - numbers.get(1));
System.out.println("After swap: numbers = " + numbers);
}
}
是几种在Java中交换两个数位置的方法,每种方法都有其适用场景和优点,你可以根据实际情况选择最合适的方法。




















