我正在使用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的值。