java数组如何交换
交换Java数组元素的几种方法
使用临时变量交换 通过引入一个临时变量来保存其中一个元素的值,再进行交换操作。这种方法简单直接,适用于任何类型的数组。
int[] arr = {1, 2, 3, 4};
int temp = arr[0];
arr[0] = arr[2];
arr[2] = temp;
使用算术运算交换 利用加减法或乘除法在不使用临时变量的情况下交换数值。需要注意数值溢出问题。

int[] arr = {5, 10};
arr[0] = arr[0] + arr[1]; // arr[0] = 15
arr[1] = arr[0] - arr[1]; // arr[1] = 5
arr[0] = arr[0] - arr[1]; // arr[0] = 10
使用异或运算交换 通过位运算中的异或操作实现交换,同样不需要临时变量,但只适用于整数类型。
int[] arr = {6, 9};
arr[0] = arr[0] ^ arr[1];
arr[1] = arr[0] ^ arr[1];
arr[0] = arr[0] ^ arr[1];
使用Collections.swap方法 对于对象数组或集合,可以使用Collections工具类中的swap方法。

Integer[] arr = {1, 2, 3};
Collections.swap(Arrays.asList(arr), 0, 2);
交换整个数组 如果需要交换两个数组的引用,可以直接通过赋值操作实现。
int[] arr1 = {1, 2, 3};
int[] arr2 = {4, 5, 6};
int[] temp = arr1;
arr1 = arr2;
arr2 = temp;
使用System.arraycopy 当需要交换数组中的大段数据时,可以使用系统提供的数组拷贝方法。
int[] arr = new int[10];
System.arraycopy(arr, 0, arr, 5, 5);
选择哪种方法取决于具体的使用场景和性能要求。对于简单的元素交换,临时变量方法最为直观;对于不需要额外空间的场景,可以考虑算术或位运算方法;对于对象数组,Collections.swap提供了简洁的解决方案。






