java中数组怎么翻转

Java 中翻转数组的方法有四种:使用 Collections.reverse() 方法直接翻转。创建新数组并逐个复制元素。使用两个指针原地翻转。利用 Arrays.parallelSort() 和匿名函数翻转。

Java 中如何翻转数组

直接翻转

最直接的方法是使用 Collections.re

verse() 方法,它会修改给定的数组并使其翻转:

int[] arr = {1, 2, 3, 4, 5};
Collections.reverse(arr);
// arr 现在为 {5, 4, 3, 2, 1}

使用另一个数组

创建一个新数组并逐个复制元素:

int[] arr = {1, 2, 3, 4, 5};
int[] reversedArr = new int[arr.length];

for (int i = 0, j = arr.length - 1; i < arr.length; i++, j--) {
    reversedArr[i] = arr[j];
}
// arr 保持不变,reversedArr 为 {5, 4, 3, 2, 1}

原地翻转

使用两个指针,一个指向数组头,一个指向末尾,交互交换元素:

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

int left = 0;
int right = arr.length - 1;

while (left < right) {
    int temp = arr[left];
    arr[left] = arr[right];
    arr[right] = temp;

    left++;
    right--;
}
// arr 现在为 {5, 4, 3, 2, 1}

Lambda 表达式

利用 Arrays.parallelSort() 和匿名函数:

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

Arrays.parallelSort(arr, (a, b) -> b - a);
// arr 现在为 {5, 4, 3, 2, 1}