java - 试图在 Java 中反转数组

标签 java arrays

<分区>

我是 Java 新手。我写了这个程序来反转数组:

public class Reverse {

    public static void main(String[] args) {

        int num[] = {55, 2, 37, 9, 8};

        System.out.println("Original array is: ");
        for (int i : num)
            System.out.print(i + " ");

        for (int i = 1 ; i  != 5; i++) {
            num[i - 1] = num[num.length - i];
        }

        System.out.println("\nReversed array is: ");
        for (int i : num)
            System.out.print(i + " ");

        System.out.println(" ");

    }
}

但我得到以下结果。你们知道我做错了什么吗?

原始数组是: 55 2 37 9 8 反转数组是: 8 9 37 9 8

最佳答案

可以交换数组的前后元素。

这样可以节省空间。

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

for (int i = 0; i < array.length/2; i++)
{
   int tmp = array[i];
   array[i] = array[array.length - i - 1];
   array[array.length - i - 1] = tmp;
}

// array is now reversed in place

如果不想改变原数组的内容,可以复制成一个新的等长数组:

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

for (int i = 0; i < array.length; i++)
{
   reversedArray[i] = array[array.length - i - 1];
}

// print out contents of reversedArray to see that it works

关于java - 试图在 Java 中反转数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18457134/

相关文章:

java - 获取特殊数字列表的算法

c++ - 检查数组元素中的所有数字是否为0或1 [c++]

php - 使用键在 PHP 中进行数组映射

javascript - 如何让 For 循环等待 Firebase 数据库响应?

java - 变量无法解析

java - 使用 JavaFX 访问网络摄像头

javascript - 如何根据数字属性对对象数组进行排序

c++ - 在运行时设置数组维度

java - 如何测试ws-security?

java - 如何使用工作队列行为发布到多个队列?