是否有任何Java中的数组预定义的方法与哪个可以 直接交换两个元素?
默认Java API没有任何交换数组元素的函数。但是,您可以使用Collections.swap(list, index1, index2);交换列表元素,并且可以将数组转换为列表并执行交换,然后将列表转换为数组。
如果你不想执行这样的操作,你可以看看一些第三方库可以提供这样的功能。
您也可以创建自己的通用功能。
例如,
public class Test {
@SuppressWarnings("unchecked")
public static void swap(T[] arr, int index1, int index2) {
// Need to add null check and index checks
List list = Arrays.asList(arr);
Collections.swap(list, index1, index2);
arr = (T[]) list.toArray();
}
public static void main(String[] args) {
Integer[] arr = { 1, 2, 3, 4, 5 };
swap(arr, 1, 2);
System.out.println(Arrays.asList(arr));
}
}
OUTPUT
[1, 3, 2, 4, 5]
NOTES:
以上功能不会为原始阵列工作
SuppressWarnings是为了避免取消选中投射警告而添加的