code: public static <T> T findFirst(Iterator<T> iterator, Function1<? super T, Boolean> predicate) {
  		if (predicate == null)
  			throw new NullPointerException("predicate");
  		while(iterator.hasNext()) {
  			T t = iterator.next();
  			if (predicate.apply(t))
  				return t;
  		}
  		return null;
  	}
docs: Finds the first element in the given iterator that fulfills the predicate. If none is found or the iterator is
  empty, <code>null</code> is returned.
  
  @param iterator
  the iterator. May not be <code>null</code>.
  @param predicate
  the predicate. May not be <code>null</code>.
  @return the first element in the iterator for which the given predicate returns <code>true</code>, returns
  <code>null</code> if no element matches the predicate or the iterator is empty.