@Override
    public Iterator<Result> iterator() {
        return new Iterator<Result>() {
            private Result nextOne = null;

            @Override
            public boolean hasNext() {
                if (null == nextOne) {
                    nextOne = one();
                }
                return nextOne != null;
            }

            @Override
            public Result next() {
                if (null != nextOne || hasNext()) {
                    final Result r = nextOne;
                    nextOne = null;
                    return r;
                } else
                    throw new NoSuchElementException();
            }

            @Override
            public void remove() {
                throw new UnsupportedOperationException();
            }
        };
    }
Returns a blocking iterator of the items streaming from the server to the client. This {@link Iterator} will
consume results as they arrive and leaving the {@code ResultSet} empty when complete.
<p/>
The returned {@link Iterator} does not support the {@link Iterator#remove} method.
gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ResultSet.java