2015-09-28 8 views
6

インクリメンタルな数値の配列を作成する関数を作成します。 2つのパラメータを受け取りますループの代わりにストリームを使用してインクリメンタルintの配列を作成します。

int[] array = new int[]{1, 2, 3, 4, 5, 6, 7, 8, ..., 1000000}; 

機能:

は例えば、私のような何かを取得したい私が知っている

public int[] buildIncrementalArray(int start, int length) { ... } 

:数(包括的)と、配列の最後の長さを開始しますforループを使用する方法:

public int[] buildIncrementalArray(int start, int length) { 
    int[] result = new int[length]; 
    for(int i = 0 ; i < length ; i++) { 
     result[i] = start + i; 
    } 
    return result; 
} 

forループを使用する代わりに、Ja v 8ストリームAPI。 Stream APIを使用してどのように行うのか誰かが知っていますか?

答えて

14

そのための組み込みメソッドがすでにあります:

int[] array = IntStream.range(start, start + length).toArray(); 

IntStream.rangeは1

の増分ステップで終了(排他的)にスタート(包括的)から IntStreamを命じシーケンシャルを返します。

終了要素を含める場合は、IntStream.rangeClosedを使用できます。

-1

あなたはそれがあなたのために動作しない場合は私に知らせてくださいIntStream

int[] array = new int[length]; 
IntStream.range(0, length).forEach(i -> array[i] = i + 1); 

を使用して、このようにしてみてください。

関連する問題