「Java8」Stream.iterate()を使うサンプル
説明
static IntStream iterate(int seed,IntUnaryOperator f)
初期要素seedに関数fを繰り返し適用することで生成される、順序付けされた無限順次IntStreamを返します(seed、f(seed)、f(f(seed))、
といった要素から成るStreamが生成される)。
Javaコード
package com.arkgame.study; import java.util.stream.IntStream; import java.util.stream.Stream; public class IterateDemo { public static final int MAX = 5; public static void main(String[] args) { System.out.println("サンプル1:"); IntStream.iterate(0, i -> i + 2).limit(MAX) .forEach(System.out::println); System.out.println("偶数の生成:"); Stream.iterate(0, i -> i + 1) .filter(x -> x % 2 == 0) .limit(MAX) .forEach(x -> System.out.println(x)); System.out.println("奇数の生成:"); Stream.iterate(0, i -> i + 1) .filter(x -> x % 2 != 0) .limit(MAX) .forEach(x -> System.out.println(x)); } }
実行結果
サンプル1:
0
2
4
6
8
偶数の生成:
0
2
4
6
8
奇数の生成:
1
3
5
7
9