0

これに対する答えがどこにも見つからなかったことに驚いています。100 の int 配列を 1..100 で埋めたい。Fill は良い方法ですが、ターンごとに値が増加しません。ループでそれを行う方法は明らかですが、最大値が非常に高いため、それを避けたいと思います。私のためにこれを行うことができる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 に答える