public Stream map(final LambdaExpression le) { Iterator<Object> downStream = new OpIterator() { @Override protected void findNext() { if (iterator.hasNext()) { Object obj = iterator.next(); next = le.invoke(obj); foundNext = true; } } }; return new Stream(downStream); }
public Optional min(LambdaExpression le) { return compare(false, le); }
public Stream limit(final Number count) { return substream(Integer.valueOf(0), count); }
public Optional reduce(LambdaExpression le) { Object seed = null; if (iterator.hasNext()) { seed = iterator.next(); } if (seed == null) { return Optional.EMPTY; } else { return new Optional(reduce(seed, le)); } }
public Stream substream(final Number start) { return substream(start, Integer.valueOf(Integer.MAX_VALUE)); }
public Optional reduce(LambdaExpression le) { Object seed = null; if (iterator.hasNext()) { seed = iterator.next(); } if (seed == null) { return Optional.EMPTY; } else { return new Optional(reduce(seed, le)); } }
public Stream peek(final LambdaExpression le) { Iterator<Object> downStream = new OpIterator() { @Override protected void findNext() { if (iterator.hasNext()) { Object obj = iterator.next(); le.invoke(obj); next = obj; foundNext = true; } } }; return new Stream(downStream); }
public Optional max(LambdaExpression le) { return compare(true, le); }
public Stream limit(final Number count) { return substream(Integer.valueOf(0), count); }
public Stream map(final LambdaExpression le) { Iterator<Object> downStream = new OpIterator() { @Override protected void findNext() { if (iterator.hasNext()) { Object obj = iterator.next(); next = le.invoke(obj); foundNext = true; } } }; return new Stream(downStream); }
public Optional max(LambdaExpression le) { return compare(true, le); }
public Stream substream(final Number start) { return substream(start, Integer.valueOf(Integer.MAX_VALUE)); }
public Stream peek(final LambdaExpression le) { Iterator<Object> downStream = new OpIterator() { @Override protected void findNext() { if (iterator.hasNext()) { Object obj = iterator.next(); le.invoke(obj); next = obj; foundNext = true; } } }; return new Stream(downStream); }
public Optional max() { return compare(true); }
public Stream filter(final LambdaExpression le) { Iterator<Object> downStream = new OpIterator() { @Override protected void findNext() { while (iterator.hasNext()) { Object obj = iterator.next(); if (ELSupport.coerceToBoolean(le.invoke(obj), true).booleanValue()) { next = obj; foundNext = true; break; } } } }; return new Stream(downStream); }
public Optional max() { return compare(true); }
public Stream filter(final LambdaExpression le) { Iterator<Object> downStream = new OpIterator() { @Override protected void findNext() { while (iterator.hasNext()) { Object obj = iterator.next(); if (ELSupport.coerceToBoolean(null, le.invoke(obj), true).booleanValue()) { next = obj; foundNext = true; break; } } } }; return new Stream(downStream); }
public Optional min() { return compare(false); }
public Stream flatMap(final LambdaExpression le) { Iterator<Object> downStream = new OpIterator() { private Iterator<?> inner; @Override protected void findNext() { while (iterator.hasNext() || (inner != null && inner.hasNext())) { if (inner == null || !inner.hasNext()) { inner = ((Stream) le.invoke(iterator.next())).iterator; } if (inner.hasNext()) { next = inner.next(); foundNext = true; break; } } } }; return new Stream(downStream); }
public Optional min() { return compare(false); }