「Java8」Stream.iterate()を使うサンプル

2020年12月11日

説明
static IntStream iterate(int seed,IntUnaryOperator f)
初期要素seedに関数fを繰り返し適用することで生成される、順序付けされた無限順次IntStreamを返します(seed、f(seed)、f(f(seed))、
といった要素から成るStreamが生成される)。
Javaコード

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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

Java

Posted by arkgame