返回

别划了,快进来,找个位置随便坐,交换两个变量的值,你知道几种方法

前端

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 种交换变量值的方法,每种方法都有其优缺点。大家可以根据自己的需要选择合适的方法来进行交换。