Java Stream API 之 findFirst()

     在java Stream API中findFirst() 是一个终端操作,它返回一个 Optional<T> 对象,这个对象可能包含一个流中的第一个元素(如果存在的话)。Optional 是一个容器对象,它可能包含一个值,或者不包含(在这种情况下,它是空的)。

下面是一个示例:

import java.util.Arrays;  
import java.util.List;  
import java.util.Optional;  
  
public class FindFirstExample {  
    public static void main(String[] args) {  
        List<String> list = Arrays.asList("apple", "banana", "cherry");  
  
        // 使用 findFirst() 查找流中的第一个元素(apple)  
        Optional<String> firstElement = list.stream().findFirst();  
  
        // 检查 Optional 是否包含值  
        if (firstElement.isPresent()) {  
            System.out.println("第一个元素是: " + firstElement.get());  
        } else {  
            System.out.println("流中没有元素");  
        }   
    }  
}

        首先创建了一个包含三个字符串的列表,并使用 stream() 方法将其转换为一个流。然后,使用 findFirst() 方法来查找并获取流中的第一个元素。因为流中的第一个元素是 "apple",所以 firstElement 变量现在包含一个 Optional<String> 对象,该对象包含值 "apple"。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Java 8中的Stream API提供了一种新的处理集合的方式,它支持函数式编程,可以通过一系列的中间操作来完成对数据的处理,最终通过终止操作返回处理结果。下面是Java 8中Stream API的常用方法: 1.创建Stream - Stream.of(T... values):将一组任意类型的值转换成Stream。 - Collection.stream():将集合转换成Stream。 - Arrays.stream(T[] array):将数组转换成Stream。 - Stream.generate(Supplier<T> s):生成一个无限长度的Stream。 - Stream.iterate(T seed, UnaryOperator<T> f):生成一个有限长度的Stream。 2.中间操作 - filter(Predicate<T> p):过滤掉不符合条件的元素。 - map(Function<T, R> f):将元素进行转换,产生一个新的Stream。 - flatMap(Function<T, Stream<R>> f):将元素进行扁平化处理。 - distinct():去重,去掉重复的元素。 - sorted():排序,将元素按照自然顺序排序。 - sorted(Comparator<T> c):排序,将元素按照指定的Comparator排序。 - peek(Consumer<T> c):对每个元素执行一些操作,但是不影响流的操作。 - limit(long maxSize):截取Stream,只包含前maxSize个元素。 - skip(long n):跳过前n个元素。 3.终止操作 - forEach(Consumer<T> c):对Stream中的每个元素执行一些操作。 - toArray():将Stream转换成数组。 - reduce(BinaryOperator<T> accumulator):将Stream中的所有元素依次执行指定的操作,返回一个Optional对象。 - reduce(T identity, BinaryOperator<T> accumulator):将Stream中的所有元素依次执行指定的操作,并且提供一个初始值。 - collect(Collector<T, A, R> collector):将Stream中的所有元素收集到一个集合中。 - min(Comparator<T> c):返回Stream中最小的元素。 - max(Comparator<T> c):返回Stream中最大的元素。 - count():返回Stream中元素的数量。 - anyMatch(Predicate<T> p):判断是否存在至少一个元素符合条件。 - allMatch(Predicate<T> p):判断是否所有的元素都符合条件。 - noneMatch(Predicate<T> p):判断是否所有的元素都不符合条件。 - findFirst():返回Stream中的第一个元素,如果Stream为空,则返回一个空的Optional对象。 - findAny():返回Stream中的任意一个元素,如果Stream为空,则返回一个空的Optional对象。 以上就是Java 8中Stream API的常用方法。需要注意的是,Stream是一种延迟计算的方式,只有在执行终止操作时才会进行实际的计算。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风&竹林

各位老板的鼓励是我最大的创作动

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值