「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));
}
}
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));
}
}
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