[Java8]ストリームAPIのfilterメソッドで指定条件に一致する最初の要素を取得
環境
JavaSE 1.8
Eclipse 2019-12
書式
Stream<T> filter(Predicate<? super T> predicate)
このストリームの要素のうち、指定された述語に一致するものから構成されるストリームを返します。
これは中間操作です。
パラメータ
predicate – 各要素を含めるべきか判定する目的で各要素に適用します
戻り値
新しいストリーム
使用例
package com.arkgame.study; import java.util.Arrays; import java.util.List; import java.util.Optional; public class OptiinalDemo { // 文字列に "b" が含まれる private static final String FINDSTR = "b"; public static void main(String[] args) { // 最初の値を取得 List<String> list = Arrays.asList("study", "skill", "become"); // 条件に一致する最初の要素を取得 Optional<String> resStr = list.stream().filter(s -> s.contains(FINDSTR)).findFirst(); //存在する値がある場合はtrueを返す if (resStr.isPresent()) { System.out.println("文字列にbが含まれる最初の値:" + resStr.get()); } } }
実行結果
文字列にbが含まれる最初の値:become