Java数组顺序反转

Cod*_*ody 1 java arrays

我正在学习数组,我试图颠倒数组中的顺序.这是我迄今为止所获得的方法,但它仅适用于数组中前半部分的值.我究竟做错了什么?

public static void reverse(int[] anArray)
{
    int[] a = anArray ;
    for (int j = 0; j <= (a.length - 1); j++ )
    {
        anArray[j] = a[(anArray.length - j - 1)];
    }
}
Run Code Online (Sandbox Code Playgroud)

unh*_*ler 5

您需要创建一个临时位置才能进行交换.此代码将数组的末尾写入前面,但是当您编写数组的末尾时,前半部分的值已经丢失.

public static void reverse(int[] a)
{
    int l = a.length;
    for (int j = 0; j < l / 2; j++)
    {
        int temp = a[j];
        a[j] = a[l - j - 1];
        a[l - j - 1] = temp;
    }
}
Run Code Online (Sandbox Code Playgroud)

此外,您正在增加j两次.for循环定义的最后一部分执行每个循环之间的增量.您不需要在循环块内手动执行此操作.