我正在使用google-collections并尝试查找满足谓词(如果不是)的第一个元素,请返回“null”。

不幸的是,当找不到任何元素时,Iterables.find和Iterators.find会引发NoSuchElementException。

现在,我被迫做

Object found = null;
if ( Iterators.any( newIterator(...) , my_predicate )
{
    found = Iterators.find( newIterator(...), my_predicate )
}

我可以在“try / catch”周围做同样的事情,但是对于我的用例,我将遇到很多找不到元素的情况。

有没有更简单的方法可以做到这一点?

最佳答案

听起来您应该使用Iterators.filter,然后在返回的迭代器上检查hasNext的值。

07-26 04:23