「Java8」Stream.filter()メソッドで条件を満たす配列(Integer、String、Boolean)の要素を取得する方法

2020年11月9日

説明
Stream<T> filter(Predicate<? super T> predicate)
このストリームの要素のうち、指定された述語に一致するものから構成されるストリームを返します。
パラメータ:
predicate – 各要素を含めるべきか判定する目的で各要素に適用する、非干渉でステートレスな述語
戻り値:新しいストリーム
Javaコード

package com.arkgame.study.it;

import java.util.Arrays;
import java.util.List;

public class SttreamDemo {

      public static Integer[] cftA = { 11, 22, 33, 44, 55, 66 };
      public static String[] cftB = { "A1", "B02", "C003", "D0004" };
      public static Boolean[] cftC = { true, false, false };

      public static void main(String[] args) {
            List<Integer> intLst = Arrays.asList(cftA);
            System.out.println("filter関数を呼び出す結果(Integer型配列の要素):");
            // 条件 n > 44
            intLst.stream().filter(n -> (n > 44)).forEach(System.out::println);

            List<String> strLst = Arrays.asList(cftB);
            System.out.println("filter関数を呼び出す結果(String型配列の要素):");
            // 条件 str.length() > 3
            strLst.stream().filter(str -> (str.length() > 3)).forEach(System.out::println);

            List<Boolean> boolLst = Arrays.asList(cftC);
            System.out.println("filter関数を呼び出す結果(Boolean型配列の要素):");
            // b.compareTo(true) == 1
            boolLst.stream().filter(b -> (b.compareTo(true) == 1)).forEach(System.out::println);
      }

}

結果
filter関数を呼び出す結果(Integer型配列の要素):
55
66
filter関数を呼び出す結果(String型配列の要素):
C003
D0004
filter関数を呼び出す結果(Boolean型配列の要素):

Java

Posted by arkgame