如何以相反的顺序返回Array的元素

时间:2015-08-11 12:29:53

标签: java arrays sorting reverse

我需要写一个方法。它将接受任何数组作为输入并返回另一个数组作为输出。 out数组元素应该是相反的顺序

input a[]={123};
output b[]={321};

注意:作为一个数组并获得另一个包含相同元素的数组,但顺序相反 我尝试了什么

public class p112409 
{
   public static int nums[] = { 5, 11, 9 }; 
   public static void main(String[] args) { 
     p112409.reverse3(nums); 
} 

public static int[] reverse3(int[] nums) 
{ 
    int rev[] = { 0, 0, 0, 0 }; 
    int lenght = nums.length; 
    for (int i = lenght - 1; i >= 0; i--) 
    {
      rev[i] = nums[i]; System.out.println(rev[i]); 
    }
    return nums; 
  } 
} 

lang:仅限Java

5 个答案:

答案 0 :(得分:1)

细节是在forloop内部的分配。

public static int[] reverseArray (int[] input){
    int len = input.length;
    int[] output = new int[len];
    for (int i=0;i<len;i++){
        output[i]= input[len-1-i]; // assign from the reverse of the input
    }
    return output;
}

答案 1 :(得分:0)

首先,您正在更改rev并返回nums这没有任何意义。

第二,如果索引相同,那么数组也是相同的。

我建议你做的是使用不同的索引k并从0迭代到length,这会反转数组。

 int rev[] = { 0, 0, 0, 0 }; 
 int lenght = nums.length; 
 for (int i = lenght - 1, k = 0; i >= 0; i--, k++) 
    {
      rev[k] = nums[i];
    }
 return rev; 

答案 2 :(得分:0)

您可以使用

Collections.reverse(a);

或实施正确的反向方法

private List reverseList(List myList) {
List invertedList = new ArrayList();
for (int i = myList.size() - 1; i >= 0; i--) {
    invertedList.add(myList.get(i));
}
return invertedList;
}

答案 3 :(得分:0)

最简单的方法是创建一个数组,其大小定义为输入数组的大小,然后迭代相同输入数组长度的for循环(从a.length减少到0)。

使用计数器将这些输入数组值放入输出数组的另一个索引中。

在你的情况下,for循环的第一次迭代应该这样做: b [counter] = a [a.length-1]

答案 4 :(得分:0)

{{1}}