反向遍历数组,没有减号

Cau*_*hon 3 java

在今天的面试中被问到这个问题.我确定这是一个非常简单的技巧,但我想不出来.如何从一端到另一端遍历一个简单的Java数组(例如,为了从右到左聚合所有值的总和),而不使用"减"(-)符号(所以i--在循环中没有,或类似的东西) )?

编辑:我很确定它应该是一个不涉及Java特定结构的技巧(如Collections).不幸的是我以为我以后会自己想到它,所以我没有问到答案是什么:/

Old*_*eon 9

递归是一个选项:

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

public void traverseReversed(int[] a) {
    traverseReversed(a, 0);
}

private void traverseReversed(int[] a, int i) {
    if ( i + 1 < a.length ) {
        // Traverse the rest of the array first.
        traverseReversed(a, i+1);
    }
    System.out.println(a[i]);
}

public void test() throws Exception {
    System.out.println("Hello world!");
    traverseReversed(numbers);
}
Run Code Online (Sandbox Code Playgroud)