ホームページ >Java >&#&チュートリアル >Java で IntStream 関数を使用して数値ストリーム操作を行う方法

Java で IntStream 関数を使用して数値ストリーム操作を行う方法

WBOY
WBOYオリジナル
2023-06-26 20:15:082412ブラウズ

Java の IntStream 関数は、Java 8 で新しく導入された関数インターフェイスです。整数型データに対して、フィルタリング、マッピング、コレクション、その他の操作を含むストリーミング操作を実行できます。この記事では、数値ストリーム操作に IntStream 関数を使用する方法を紹介します。

1. IntStream 関数の概要

IntStream は Java の関数インターフェイスであり、基本型が int である要素のストリームを表します。 Stream インターフェイスを継承し、基本型 int のメソッドを追加します。

IntStream のメソッドは、主に次の 4 つのカテゴリに分類されます。

  1. ストリームの作成: range、rangeClosed、of、iterate、generate およびその他のメソッド。
  2. 変換ストリーム: マップ、フラットマップ、フィルター、個別、ソート、その他のメソッド。
  3. ストリームを終了します: forEach、toArray、sum、average、reduce およびその他のメソッド。
  4. 操作フロー: min、max、count、anyMatch、allMatch、noneMatch およびその他のメソッド。

2. IntStream 関数の基本的な使用法

IntStream の使用法は基本的に Stream の使用法と同じで、IntStream.range メソッドを使用して整数ストリームを作成できます。指定された範囲:

IntStream intStream = IntStream.range(1, 10);

IntStream.of メソッドを使用して、指定された要素の整数ストリームを作成することもできます:

IntStream intStream = IntStream.of(1, 3, 5, 7, 9);

IntStream.iterate メソッドを使用して反復ストリームを作成することもできます:

IntStream intStream = IntStream.iterate(1, n -> n + 2).limit(5);
intStream.forEach(System.out::println);//1 3 5 7 9

ストリームを作成した後、変換のための中間操作を使用できます。たとえば、map メソッドを使用して各要素を乗算することができます。

IntStream intStream = IntStream.range(1, 10);
intStream.map(n -> n * 2).forEach(System.out::println);//2 4 6 8 10 12 14 16 18

また、filter メソッドを使用して、条件を満たす要素をフィルタリングして除外することもできます。

IntStream intStream = IntStream.range(1, 10);
intStream.filter(n -> n % 2 == 0).forEach(System.out::println);//2 4 6 8

中間操作の完了後、終了操作を使用して、統計、収集、その他の操作を完了できます。たとえば、sum メソッドを使用してストリームを合計することができます:

IntStream intStream = IntStream.range(1, 10);
int sum = intStream.filter(n -> n % 2 == 0).sum();
System.out.println(sum);//20

また、toArray メソッドを使用してストリーム内の要素を配列に変換することもできます:

IntStream intStream = IntStream.range(1, 10);
int[] arr = intStream.filter(n -> n % 2 == 0).toArray();
System.out.println(Arrays.toString(arr));//[2, 4, 6, 8]

3. 高度な使用法IntStream 関数の

IntStream には、 flatMap、reduce、collect などのメソッドなど、より高度な用途もあります。これらのメソッドの使用方法を以下に紹介します。

  1. flatMap メソッド

flatMap メソッドは、ストリームの各要素をストリームにマップし、これらの小さなストリームを 1 つの大きなストリームにマージできます。たとえば、 flatMap メソッドを使用して各数値を対応する文字列に変換し、これらの文字列をストリームにマージできます。

IntStream intStream = IntStream.range(1, 5);
Stream<String> stream = intStream.flatMap(n -> Stream.of(String.valueOf(n)));
stream.forEach(System.out::println);//"1" "2" "3" "4"
  1. reduce メソッド

reduce メソッドストリーム内の要素は、合計や積などの値に還元できます。 Reduce メソッドを使用して、int 型のストリームを合計することができます。

IntStream intStream = IntStream.range(1, 5);
int sum = intStream.reduce(0, (a, b) -> a + b);
System.out.println(sum);//10
  1. collect メソッド

collect メソッドは、ストリーム内の要素をコンテナに収集できます。 List 、 Set 、 Map などcollect メソッドを使用して、int 型ストリームを List に収集できます。

IntStream intStream = IntStream.range(1, 5);
List<Integer> list = intStream.boxed().collect(Collectors.toList());
System.out.println(list);//[1, 2, 3, 4]

4. まとめ

この記事では、Java の IntStream 関数の基本的な使用法と高度な使用法を紹介します。 IntStream 関数は、int 型の要素に対してストリーミング操作を実行でき、豊富な中間操作と終了操作を提供するため、さまざまな数値計算やデータ収集タスクを簡単に完了できます。この記事の紹介を通じて読者が IntStream 関数の使い方をマスターし、将来の Java 開発作業が容易になることを願っています。

以上がJava で IntStream 関数を使用して数値ストリーム操作を行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。