Java 8中的Stream API提供了filter()方法来过滤流中的元素。filter()方法接受一个Predicate类型的参数,返回一个新的流,其中只包含符合条件的元素。findFirst()方法返回流中第一个元素,如果流为空则返回空的Optional对象。
findFirst() 和 orElse() 方法可以结合使用,它能查询流中第一个满足条件的元素,如果没有找到,就返回默认值。
List<String> list = Arrays.asList("a","b","c","d");
Optional<String> findFirst = list.stream().filter(s -> s.equals("e")).findFirst();
String s = findFirst.orElse("not found");
如果流中存在符合条件的元素,findFirst()返回第一个符合条件的元素,orElse()不会起作用,如果没有符合条件的元素,findFirst()返回空的Optional对象,orElse()返回默认值。