此问题已在此处找到答案:
获取与条件匹配的第一个元素(3个答案)
昨天关门了。
我想知道是否有一种方法可以使用stream().filter()直接在java中过滤出单个元素,而不需要创建列表和获取0索引。
我的代码如下所示:
String foo = stringList
.stream().filter(item -> item.equals("foo"))
.collect(Collectors.toList()).get(0);
我希望在不需要创建列表的情况下获取元素。
谢谢
2条答案
按热度按时间xzabzqsa1#
是的,你会打电话的
findFirst()
:作为奖励,它返回一个
Optional
允许您处理没有元素与过滤器匹配的情况:mf98qq942#
你要找的是
findFirst
或findAny
,这将返回一个可选的:这还将处理创建的列表为空并抛出
ArrayIndexOutOfBoundsException
.