Java数组顺序反转

标签 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)];
    }
}

最佳答案

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

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;
    }
}

此外,您将 j 递增两次。 for 循环定义的最后一部分在每个循环之间进行递增。您不需要在循环 block 内手动执行此操作。

关于Java数组顺序反转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8095045/

相关文章:

java - 如何使用json节点解析json数组值

java - Java Util并发池选择哪个

java - 前端和后端分别部署(域)的Cookies的使用

Java正则表达式匹配特定的特殊字符

java - 如何将列表中的每个字段数据存储在字符串中?

c char[] to jstring printf 适用于 int 类型,但不适用于 string

ruby - 比较两个哈希数组并返回新对象

java - 具有不同表达式类型的嵌套开关: ArrayIndexOutOfBoundsException -4

arrays - 如何将数组传递给VBA中的函数?

java - 从特定列索引开始遍历数组