Java8中Stream中的limit方法调用原理是什么?

发布网友 发布时间:2022-04-20 20:00

我来回答

3个回答

热心网友 时间:2023-12-15 11:57

仔细看以下两行代码:

Stream<String> stream = Stream.of(arr);
Stream<String> stream1 = stream.limit(2);
调用limit的是小写的stream,它是of方法返回的Stream的一个实例。

热心网友 时间:2023-12-15 11:58

limit 返回 Stream 的前面 n 个元素追问limit方法不是一个抽象方法吗,为什么能够直接调用,他是怎么实现的?

热心网友 时间:2023-12-15 11:58

Stream上的所有操作分为两类:中间操作和结束操作,中间操作只是一种标记,只有结束操作才会触发实际计算。中间操作又可以分为无状态的(Stateless)和有状态的(Stateful),无状态中间操作是指元素的处理不受前面元素的影响,而有状态的中间操作必须等到所有元素处理之后才知道最终结果,比如排序是有状态操作,在读取所有元素之前并不能确定排序结果;结束操作又可以分为短路操作和非短路操作,短路操作是指不用处理全部元素就可以返回结果,比如找到第一个满足条件的元素。之所以要进行如此精细的划分,是因为底层对每一种情况的处理方式不同。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com