倒序遍历数组,不使用减号。

9 浏览
0 Comments

倒序遍历数组,不使用减号。

今天我在一次面试中被问到了这个问题。我相信这是一个相当简单的技巧,但我想不出来。如何遍历一个简单的Java数组,从结尾到开始(例如,为了从右到左累加所有值的总和),不使用 \"减号\" (-) 符号(因此在循环中没有 i--或类似的东西)?

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

admin 更改状态以发布 2023年5月21日
0
0 Comments

如果允许使用Collections,您可以轻松地将其反转。 请参见下面的代码 -

Collections.reverse(Arrays.asList(array))

0
0 Comments

递归是一个选项:

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);
}

0