如何在Java中反转int数组?

2022-08-31 05:19:53

我正在尝试在Java中反转int数组。

此方法不会反转数组。

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

这是怎么回事?


答案 1

要反转 int 数组,请交换项目直到到达中点,如下所示:

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

按照您的方式,您将每个元素交换两次,因此结果与初始列表相同。


答案 2

使用Commons.Lang,您可以简单地使用

ArrayUtils.reverse(int[] array)

大多数时候,当它们处理您的问题时,坚持使用已经过单元测试和用户测试的易于获得的库会更快,更安全。