Java查找与谓词匹配的第一个元素

示例

可以找到Stream与条件匹配的第一个元素。

在此示例中,我们将找到第一个Integer正方形结束的正方形50000。

IntStream.iterate(1, i -> i + 1) // 生成无限流1,2,3,4 ...
    .filter(i -> (i*i) > 50000) // Filter to find elements where the square is >50000
    .findFirst(); // 找到第一个过滤的元素

此表达式将返回OptionalInt带有结果的。

请注意,对于infinite Stream,Java将一直检查每个元素,直到找到结果为止。Stream如果Java为有限元素,则如果元素用完但仍然找不到结果,则它将返回empty OptionalInt。