【发布时间】:2012-09-22 15:03:11
【问题描述】:
如果我有这样的数组:
1 4 9 16 9 7 4 9 11
反转数组的最佳方法是什么,使其看起来像这样:
11 9 4 7 9 16 9 4 1
我有下面的代码,但是感觉有点繁琐:
public int[] reverse3(int[] nums) {
return new int[] { nums[8], nums[7], nums[6], nums[5], num[4],
nums[3], nums[2], nums[1], nums[0] };
}
有没有更简单的方法?
【问题讨论】:
-
使用循环将前半部分的每个元素与后半部分的元素交换。
-
如果我使用了 void 那意味着我不能在这个方法中使用 return 语句对吗?
-
确实如此。您可以保留可能返回也可能不返回的现有数组。或者您可以退回一份副本。
-
根据您已有的想法,我会大胆猜测您在开发方面非常有经验,因此我将指出一个简单的替代方案。只需在反向 for 循环中执行您想要的操作,而不是实际反转数组。
for (int i = someArray.length - 1; i > 0; i--) { doStuff(someArray[i]); } reversedArray[j++] = firstArray[i]; }