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

2020年12月11日

説明
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

Java

Posted by arkgame