数组中的元素对称

时间:2015-05-14 15:57:08

标签: java arrays reverse elements

这是我的代码:

Meteor.startup(function() {
    console.log(Object.keys(Meteor.server.method_handlers).sort());
});

所以我被我的程序困住了。当它达到60时,我希望它反转这些值。

例如,如果我有一个[1 2 3 4 5]的数组,它会继续运行直到达到5。

我希望它倒退并做[1 2 3 4 5 4 3 2 1](或直到数组插槽结束),但我想我最终还是颠倒了值......

另外,我希望else语句在“反思”之后停止。我会休息一下吗?

这是之前的代码,这可能是它错误的原因,因为它在角度碰到反射后继续打印出NaN。反射等于0,这也是错误的......

if (refractedAngleInDegrees > 60.0)
{
    System.out.println ("The angle is making a reflection");

    //should reverse the array and make it into a palindrome-like array
    for (int f = 0; f < gradient.length /2; f++)
    {
        double anglesReversed = angleArray[f];
        angleArray[f] = angleArray[gradient.length - f - 1];
        angleArray[gradient.length - f - 1] = anglesReversed;

    }
    for (int e = 0; e < gradient.length; e++)

    {
        //System.out.println(angleArray[e]);
    }

}
else
{
    System.out.println ("The angle is refracting");
}
System.out.println(angleArray[x]);
x++;
}

1 个答案:

答案 0 :(得分:1)

如果你想反映整个数组,这里是代码:

class Rev {
static int[] reflected(int[] a) {
    int[] b = new int[a.length<<1];
    System.arraycopy(a, 0, b, 0, a.length);
    int i, j;
    for (j = a.length-1, i = 0; j>=0; j--, i++) {
        b[a.length+i] = a[j];
    }
    return b;
}

static void printArray(int[] a) {
    for (int i = 0; i < a.length; i++) {
        System.out.print(a[i] + ",");
    }
    System.out.println();
}

public static void main(String[] args) {
    final int[] a = {1, 2, 3, 4, 5};
    int[] b = reflected(a);
    printArray(a);
    printArray(b);
}
}

如果您想反映其中的一部分,您只需稍微修改此代码即可。希望这会有所帮助。

输出结果为:

1,2,3,4,5,
1,2,3,4,5,5,4,3,2,1,