java数组中两个数怎么调换

java 数组中调换两个数的方法有四种:使用临时变量使用异或运算使用 collections.swap() 方法使用 java 8+ 的流

java数组中两个数怎么调换

Java 数组中调换两个数

方法 1:使用临时变量

  • 创建一个临时变量来存储其中一个数字。
  • 将另一个数字分配给第一个数字。
  • 将临时变量的值分配给第二个数字。
int[] arr = {1, 2, 3};
int temp = arr[0];
arr[0] = arr[1];
arr[1] = temp;

方法 2:使用异或运算

异或运算符 (^) 可以用来调换两个数字,而不需要临时变量:

int[] arr = {1, 2, 3};
arr[0] ^= arr[1];
arr[1] ^= arr[0];
arr[0] ^= arr[1];

这个过程的工作原理如下:

  • arr[0] 和 arr[1] 的异或结果存储在 arr[0] 中,即 arr[0] = arr[0] ^ arr[1]。
  • arr[1] 和 arr[0] 的异或结果存储在 arr[1] 中,即 arr[1] = arr[1] ^ arr[0]。
  • arr[0] 和 arr[1] 的异或结果存储在 arr[0] 中,即 arr[0] = arr[0] ^ arr[1],这将使 arr[0] 恢复其原始值。

方法 3:使用 Collections.swap() 方法

如果数组是由集合类(如 ArrayList)存储的,则可以使用 Collections.swap() 方法轻松调换两个数字:

List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);

Collections.swap(list, 0, 1);

方法 4:使用 Java 8+ 的流

Java 8+ 中的流 API 提供了一种方便的方法来调换数组中的两个数字:

int[] arr = {1, 2, 3};

int temp = IntStream.of(arr[0], arr[1])
        .reduce((a, b) -> a ^ b)
        .getAsInt();

arr[0] ^= temp;
arr[1] ^= temp;
arr[0] ^= temp;

以上就是java数组中两个数怎么调换的详细内容,更多请关注其它相关文章!