2016-12-02 81 views
-5

我是新来的编程新手。 我有一个任务,其中包含反转数组的元素,但不能使用数组反向方法。我不知道我怎么能做到这一点。我尝试使用for循环,但它不起作用。 在此先感谢。阵列中的反向元素无阵列逆向法

试图扭转这样的事情: 1,4,9,16,9,7,4,9,11 到11,9,4,7,9,16,9,4,1

+5

您可以添加失败的尝试吗?这样我们就能看到你做错了什么。 – crumbug

+1

把它放在'List'中,然后用custom * Comparator *做'Collections.sort()'。 – GurV

+0

阅读本文http://stackoverflow.com/questions/2137755/how-do-i-reverse-an-int-array-in-java – gihan

回答

2

因此,这是一个家庭作业问题,我不会给你提供完整的答案,而是给你一些提示。

如果您可以创建附加数组,请尝试以下操作:创建一个将包含相反元素的新数组。从最后开始迭代你的初始数组,并移动到元素0.正如你这样做只是设置initialArray[i] = newArray[index]请注意,iindex只是我编造的变量。这项任务的一部分困难是弄清楚如何在两个阵列之间进行分配,所以我会把它留给你!

随意问任何更多的问题,我可以尝试引导你的解决方案。

祝你好运!

1

使用for循环,第二个数组是最简单的方法。

int[] array = new int[]{ 1, 4, 9, 16, 9, 7, 4, 9, 11 }; 
int[] array2 = array; 
int count = 0; 
for(int i = array.length-1; i >= 0; i--) { 
    array2[count] = array[i]; 
    count++; 
} 

更复杂的解决方案只使用一个数组将暂时保存到外部int值并交换它们。

int count = 0; 
int[] array = new int[]{ 1, 4, 9, 16, 9, 7, 4, 9, 11 }; 
for(int i = array.length-1; i >= count; i--) { 
    int x = array[i]; 
    array[i] = array[count]; 
    array[count] = x; 
    count++; 
}