Java 8:如何在流中获得大于10的第一个数字?

时间:2015-05-17 18:01:54

标签: java java-8 java-stream

根据主题:如何在流中获得大于10的第一个数字?

在这种情况下,stream()的方法是否有帮助?

我希望只要流到达10以上的第一个元素,它就会返回它而不会循环其余元素。 (那种“打破”循环) 有可能吗?

1 个答案:

答案 0 :(得分:7)

您可能正在寻找filterfindFirst

// new Random().ints() // or whatever the stream is
    .filter(i -> i > 10).findFirst();

findFirst会返回某种类型的Optional,因此如果您找不到匹配项,则需要决定如何处理。

这类似于这样的循环:

for (int i : ...)
    if (i > 10)     // "filter"
        return i;   // "findFirst" (may or may not be present)