如何反转阵列?

时间:2013-01-28 00:07:16

标签: java arrays reverse

我需要反转一个数组,例如将第5点中的数据移动到0,4到1,3到2。

            int size, length;

    System.out.print("how big of a list do you have: ");
    size=reader.nextInt();

    length=size-1;

    int [] array = new int [size];

    for (int count=0; count < array.length; count ++){
        System.out.println("enter a number: ");
        array [count] = reader.nextInt();
    }
    for (int count=length; count > 0; count --)
    array [(length-count)];
}

}

我在eclipse中这样做,并且在最后一行中我一直收到错误,说我没有使用运算符/表达式:array [(length-count)];但是我不知道为什么减号不起作用?或者如果我的程序一般都可以正常工作,那么它就没有超过构建部分。

2 个答案:

答案 0 :(得分:1)

数组[(length-count)]不起作用,因为它是一个值,它与写作相同

    0;

这不是对过程或操作的调用,所以这是一个错误。

试试这个:

    int temp = 0 ;
    for(int start=0, end = numbers.length -1 ; start < end; start++, end--){
        //swap numbers
        temp = array[start];
        array[start] = array[end];
        array[end] = temp;
    }

答案 1 :(得分:1)

int temp = 0;
for (int i = 0; i < array.length / 2; i++)
{
    int temp = array[i];
    array[i] = array[array.length - i--];
    array[array.length - i--] = temp;
}
使用

temp以使数字不会相互覆盖。想想它就像从冰箱里取食物一样。牛奶在水后面,你想要一些牛奶。为了得到牛奶,你拿水并把它放在手里(temp就是手)。然后将牛奶放在水的位置和牛奶所在的水中。没有“手”,你就会失去你的水(落在地板上,或者在temp的情况下,在记忆中丢失)并且只留下牛奶。