Lambda表达式中,关于Stream流中方法有些疑问。

Lambda表达式中,关于Stream流中方法有些疑问。

1、“void forEach(Consumer<? super T> var1);”中的“<? super T>”是什么意思来着?

​2、“”stream.limit(10).forEach(i-> System.out.println(i));中litmit和forEach换了顺序就错了,Stream的方法还有顺序?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好

1、void forEach(Consumer<? super T> var1);代表可以传入的方法参数类型可以是“Consumer<T>”类型,也可以是“Consumer<T的父类>”类型。

2、是的,顺序是不可以改变的。limit用于限制流的最大长度,forEach用于对其进行遍历,位置是不可以互换的。

祝学习愉快~

  • 童真模式启动 提问者 #1

    2、是不是map()/maptoInt()、distinct()、filter()、sorted()、collection/sum()这些方法无所谓顺序,只要forEach()在最后就可以了?

    2021-09-13 09:39:21
  • 同学你好,forEach、sum()、collect均是终止操作,需要放在最后使用。

    祝学习愉快~

    2021-09-13 11:05:13
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师