返回
别划了,快进来,找个位置随便坐,交换两个变量的值,你知道几种方法
前端
2024-01-16 12:54:31
1. 临时变量法
临时变量法是使用一个临时变量来进行交换,这是最简单、最常用的方法。
int a = 10;
int b = 20;
int temp = a;
a = b;
b = temp;
System.out.println("a = " + a); // 20
System.out.println("b = " + b); // 10
2. 加减法
加减法也可以用来交换变量值,不过这种方法只适用于数字类型的变量。
int a = 10;
int b = 20;
a = a + b; // a = 30
b = a - b; // b = 10
a = a - b; // a = 20
System.out.println("a = " + a); // 20
System.out.println("b = " + b); // 10
3. 数组法
数组法也是一种交换变量值的方法,但这种方法只适用于具有相同数据类型的变量。
int[] arr = {10, 20};
int temp = arr[0];
arr[0] = arr[1];
arr[1] = temp;
System.out.println("arr[0] = " + arr[0]); // 20
System.out.println("arr[1] = " + arr[1]); // 10
4. 对象法
对象法可以用来交换两个对象变量的值,但这种方法只适用于具有相同类型的对象。
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class Main {
public static void main(String[] args) {
Person p1 = new Person("张三", 20);
Person p2 = new Person("李四", 30);
Person temp = p1;
p1 = p2;
p2 = temp;
System.out.println("p1.getName() = " + p1.getName()); // 李四
System.out.println("p1.getAge() = " + p1.getAge()); // 30
System.out.println("p2.getName() = " + p2.getName()); // 张三
System.out.println("p2.getAge() = " + p2.getAge()); // 20
}
}
5. 数组运算法
数组运算法是一种使用数组来交换变量值的方法,这种方法适用于任何类型的变量。
int a = 10;
int b = 20;
int[] arr = {a, b};
arr[0] = arr[0] ^ arr[1];
arr[1] = arr[0] ^ arr[1];
arr[0] = arr[0] ^ arr[1];
a = arr[0];
b = arr[1];
System.out.println("a = " + a); // 20
System.out.println("b = " + b); // 10
6. 按位异或法
按位异或法也是一种使用位运算来交换变量值的方法,这种方法适用于任何类型的变量。
int a = 10;
int b = 20;
a = a ^ b;
b = a ^ b;
a = a ^ b;
System.out.println("a = " + a); // 20
System.out.println("b = " + b); // 10
7. 解构赋值法
解构赋值法是一种使用解构赋值语法来交换变量值的方法,这种方法只适用于具有相同类型的变量。
int a = 10;
int b = 20;
[a, b] = [b, a];
System.out.println("a = " + a); // 20
System.out.println("b = " + b); // 10
总结
交换变量值是一种常见操作,在实际编码过程中,几乎每天都会遇到。本文介绍了 7 种交换变量值的方法,每种方法都有其优缺点。大家可以根据自己的需要选择合适的方法来进行交换。