从Java中的lambda forEach()返回

从Java中的lambda forEach()返回,第1张

从Java中的lambda forEach()返回

return
那里,从λ表达式,而不是从包含方法返回。而不
forEach
需要
filter
流:

players.stream().filter(player -> player.getName().contains(name))       .findFirst().orElse(null);

这里

filter
将流限制为与谓词匹配的那些项,
findFirst
然后返回
Optional
带有第一个匹配条目的。

这看起来不如for循环方法有效,但实际上

findFirst()
会短路-
它不会生成整个过滤后的流,然后从中提取一个元素,而是仅过滤所需数量的元素,以便找到第一个匹配的。你也可以使用
findAny()
,而不是
findFirst()
如果你不一定在乎获得
第一个 从(订购)流,但只是任何匹配项匹配的球员。当涉及并行时,这可以提高效率。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5426958.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存