「Java8」Stream.filter()メソッドで条件を満たす配列(Integer、String、Boolean)の要素を取得する方法
説明
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型配列の要素):