在
return那里,从λ表达式,而不是从包含方法返回。而不
forEach需要
filter流:
players.stream().filter(player -> player.getName().contains(name)) .findFirst().orElse(null);
这里
filter将流限制为与谓词匹配的那些项,
findFirst然后返回
Optional带有第一个匹配条目的。
这看起来不如for循环方法有效,但实际上
findFirst()会短路-
它不会生成整个过滤后的流,然后从中提取一个元素,而是仅过滤所需数量的元素,以便找到第一个匹配的。你也可以使用
findAny(),而不是
findFirst()如果你不一定在乎获得
第一个 从(订购)流,但只是任何匹配项匹配的球员。当涉及并行时,这可以提高效率。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)