0

我很惊讶我在任何地方都没有找到答案。我想用 1..100 填充一个 100 的 int 数组。填充是一个很好的方法,但它不会每回合增加值。很明显如何用循环来做,但我想避免这种情况,因为我的最大值非常高。有没有什么 api 方法可以为我做到这一点?

4

2 回答 2

8
  1. 标准库中没有方法可以做到这一点。

  2. 即使有,它也需要在引擎盖下使用一个循环。

  3. 我没有看到“我的最大值非常高”的意义。这对使用循环的决定没有影响......与否。

  4. 不要使用递归。Java 没有实现尾调用优化,因此 1)它会比使用循环慢 2)StackOverflowError如果数组或列表很大,您可能会遇到这种情况。(是的,我知道所问的问题并不大......)

于 2012-09-23T05:36:53.233 回答
0

哦,使用递归!

void to100(int[] array, int i, int v) {
    if( i < array.length ) {
        array[i] = v;
        to100( i+1, v+1 );
    }
}

int[] array = new int[100];

too100( array, 0, 1 );

请享用。

于 2012-09-23T05:36:33.043 回答