为了账号安全,请及时绑定邮箱和手机立即绑定

你好,在Stream中的limit方法调用原理是什么?怎么用?

你好,在Stream中的limit方法调用原理是什么?怎么用?

一只名叫tom的猫 2022-04-01 13:10:03
Stream是一个接口,而Stream<T> limit(long maxSize);方法并非静态方法,为什么可以直接调用呢?如以下代码:public class Demo {public static void main(String[] args) {String[] arr = {"张三","李四","王五"};Stream<String> stream = Stream.of(arr);Stream<String> stream1 = stream.limit(2);}}
查看完整描述

3 回答

?
米脂

TA贡献1836条经验 获得超3个赞

仔细看以下两行代码:
Stream<String> stream = Stream.of(arr);
Stream<String> stream1 = stream.limit(2);
调用limit的是小写的stream,它是of方法返回的Stream的一个实例。

查看完整回答
反对 回复 2022-04-07
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

limit 返回 Stream 的前面 n 个元素

查看完整回答
反对 回复 2022-04-07
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

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

查看完整回答
反对 回复 2022-04-07
  • 3 回答
  • 0 关注
  • 187 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信