我正在尝试在Java中反转一个整型数组。
此方法不反转数组。
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;
}
它有什么问题?
发布于 2010-01-26 14:17:44
要反转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;
}
这样做的方法是,将每个元素交换两次,因此结果与初始列表相同。
发布于 2010-01-26 15:27:10
使用Commons.Lang,您可以简单地使用
ArrayUtils.reverse(int[] array)
大多数情况下,坚持使用已经过单元测试和用户测试的容易获得的库来解决您的问题会更快,也更安全。
发布于 2016-04-08 16:57:15
Collections.reverse(Arrays.asList(yourArray));
java.util.Collections.reverse()
可以颠倒java.util.List
,java.util.Arrays.asList()
返回一个包含您传递给它的特定数组的列表,因此yourArray
在调用Collections.reverse()
之后是颠倒的。
成本只是一个列表对象的创建,不需要额外的库。
在Tarik和他们的评论员的回答中也提出了类似的解决方案,但我认为这个答案会更简洁,更容易解析。
https://stackoverflow.com/questions/2137755
复制相似问题