Java IntStream変換

1. 前書き

このクイックチュートリアルでは、* IntStream_による他の型への変換に関するすべての可能性*を説明します。
link:/java-8-primitive-streams[boxing and unboxing]またはlink:/java-stream-indices[iterating]に関する興味深い資料は、このチュートリアル。

2. IntStream_から_Array

  • _IntStream_オブジェクトからints *の配列に変換する方法を調べてみましょう。

    この例のために、最初の50個の偶数を生成し、結果として配列に保存しましょう。
@Test
public void intStreamToArray() {
  int[] first50EvenNumbers = IntStream.iterate(0, i -> i + 2)
    .limit(50)
    .toArray();

  assertThat(first50EvenNumbers).hasSize(50);
  assertThat(first50EvenNumbers[2]).isEqualTo(4);
}
最初に、0から始まり、各要素に2を追加して反復する整数の無限ストリームを作成しましょう。 その直後に、この操作を何らかの形で終了させるために、中間操作_limit_を追加する必要があります。
最後に、終了操作_collect_を使用して、この_Stream_を配列に収集します。
これは__int__s __.__の配列を生成する簡単な方法です

3. IntStream_から_List

  • IntStream_を_Integers *の_List_に変換しましょう。

    この場合、例にさらに多様性を加えるために、メソッド_iterate_の代わりにメソッド_range_を使用しましょう。 このメソッドは、_IntStream_を_int_ 0から_int_ 50に生成します(オープン範囲なので、含まれません):
@Test
public void intStreamToList() {
  List<Integer> first50IntegerNumbers = IntStream.range(0, 50)
    .boxed()
    .collect(Collectors.toList());

  assertThat(first50IntegerNumbers).hasSize(50);
  assertThat(first50IntegerNumbers.get(2)).isEqualTo(2);
}
この例では、メソッド_range_を使用します。 ここで最も悪名高い部分は、* _ boxed_メソッドを使用することです。このメソッドは、その名前が示すように、_IntStream_内のすべての_int_要素をボックス化し、_Stream <Integer> _ *を返します。
最後に、コレクターを使用して整数のリストを取得できます。

4. IntStream_から_String

最後のトピックでは、_IntStream_ *から* a_String_を取得する方法を調べてみましょう。
この場合、最初の3つの__int__s(0、1、および2)のみを生成します。
@Test
public void intStreamToString() {
  String first3numbers = IntStream.of(0, 1, 2)
    .mapToObj(String::valueOf)
    .collect(Collectors.joining(", ", "[", "]"));

  assertThat(first3numbers).isEqualTo("[0, 1, 2]");
}
まず、この場合、コンストラクター_IntStream.of()_を使用して_IntStream_を構築します。 _Stream_を取得したら、何らかの方法で_IntStream_ *から_Stream <String> _を生成する必要があります。 したがって、_IntStream_を取り、呼び出されたメソッドにマッピングされた結果オブジェクトのタイプの_Stream_を返す中間の_mapToObj_メソッドを使用できます。
最後に、_Stream <String> _を取り、デリミタ、およびオプションでプレフィックスとサフィックスを使用して、_Stream_の各要素を追加できるコレクタ_joining_を使用します。

5. 結論

このクイックチュートリアルでは、_IntStream_を他の型に変換する必要がある場合のすべての選択肢を検討しました。 具体的には、配列、_List_、および_String_の生成として例を見ていきました。
そして、いつものように、サンプルコードはhttps://github.com/eugenp/tutorials/blob/master/java-streams-2/src/test/java/com/baeldung/convert/intstreams/IntStreamsConversionsUnitTest.java [ GitHubで]。