[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

Java

Posted by arkgame