java数组中两个数怎么调换
在 java 数组中调换两个数的方法有四种:使用临时变量使用异或运算使用 collections.swap() 方法使用 java 8+ 的流
在 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数组中两个数怎么调换的详细内容,更多请关注其它相关文章!