作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
今天在面试时被问到这个问题。我敢肯定这是一个非常简单的技巧,但我想不出。如何在不使用“减号”(-
) 的情况下从头到尾遍历一个简单的 Java 数组(例如,为了聚合从右到左的所有值的总和)(所以循环中没有 i--
或类似的东西)?
编辑:我很确定这应该是一个不涉及 Java 特定结构(如 Collections
)的技巧。不幸的是我想我以后会自己考虑,所以我没有问答案是什么:/
最佳答案
递归是一种选择:
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);
}
关于java - 反向遍历数组,不带负号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46408786/
我是一名优秀的程序员,十分优秀!