@Override public PrimitiveIterator.OfInt iterator() { if (intermediateType.shouldUseIntermediate(sorted, distinct)) { IntStream stream = performIntermediateRemoteOperation(Function.identity()); return stream.iterator(); } else { return remoteIterator(); } }