创建一个方法,将整数数组作为输入并返回反向数组

时间:2014-11-04 03:20:33

标签: arrays methods return reverse

我需要帮助编写这段代码,这样我才能反转整数数组并返回它?有人可以帮忙吗?

public class Quesitons {

    public static void main(String[] args) {

        int[] numbers = {1, 2, 3, 4, 5, 6, 8};

        int[] a = reverseArray(numbers);
        System.out.println(a);

    }

    public static int[] reverseArray(int[] numbers) {

        int [] newArray= new int [numbers.length];
        int temp;
        int left = numbers[0];
        int right = numbers.length; 
        int  mid = left+right/2;
        for (int i=0; i<mid;i++){
            temp = left;
            left= right;
            right= temp;

            right= right -1;
            left= left+1;

            left= newArray[0];
            right=newArray.length-1;
        }
        return newArray;
    }
}

3 个答案:

答案 0 :(得分:0)

与编程中的大多数任务一样,最简单的方法是根本不做任何工作。虽然数组没有reverse方法,但Collections中有一个反向方法。因此,如果您使用List而不是数组,则只需拨打yourList.reverse()即可,所有工作都将为您完成。

如果您想要或需要使用数组,这里的方法将返回传递给它的int[]的反向:

public static int[] reverseArray(int[] input)
{
    int[] reversedArray = new int[input.length];

    int j = 0;
    for (int i = input.length - 1; i >= 0; i--)
    {
        reversedArray[j] = input[i];
        j++;
    }

   return reversedArray;
}

总结一下它的作用:首先,它创建一个与输入数组长度相同的新数组。然后,在从输入数组的最后一个元素移动到第一个元素的for循环中,它将每个元素从第一个到最后一个分配给新数组的索引。因此,输入数组的最后一个索引被分配给新数组的第一个索引,而倒数第二个索引则分配给第二个索引,等等。

答案 1 :(得分:0)

试试这个

public static int[] reverseArray(int[] numbers) {

    int[] newArray= new int[numbers.length];
    int counter = 0 ;
    for(int i = numbers.length - 1; i >= 0; i--)
    {
        newArray[counter] = numbers[i];
        counter++;
    }
    return newArray;
}

这样调用以查看结果:

int[] numbers = {1, 2, 3, 4, 5, 6, 8};
int[] a = reverseArray(numbers);
for(int i = 0; i < a.length; i++)
   Console.write(a[i]);

我没有测试过,但确定它应该可以使用。

答案 2 :(得分:0)

一个稍微不同的for循环来反转数组:

for (int i = numbers.length -1, j = 0; i >= 0; i--, j++)
{
   newArray[i] = numbers[j];
}

for循环中,您可以声明多个以逗号分隔的变量。唯一的事情是你只能有一个逃避条款(即i >= 0j < array.length

基本上你正在做的是倒计时反向阵列,同时对原始阵列进行计数。如果你仔细想想,可以相当简单地实现。