java.util.stream.Stream#iterator ( )源码实例Demo

下面列出了java.util.stream.Stream#iterator ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: n4js   文件: GraphUtils.java
public static Rectangle getBounds(Stream<Node> nodes) {
	final Iterator<Node> i = nodes.iterator();
	if (i.hasNext()) {
		float xMin = Float.MAX_VALUE;
		float xMax = Float.MIN_VALUE;
		float yMin = Float.MAX_VALUE;
		float yMax = Float.MIN_VALUE;
		while (i.hasNext()) {
			final Node n = i.next();
			xMin = Math.min(xMin, n.getX());
			yMin = Math.min(yMin, n.getY());
			xMax = Math.max(xMax, n.getX() + n.getWidth());
			yMax = Math.max(yMax, n.getY() + n.getHeight());
		}
		return new Rectangle(xMin, yMin, xMax - xMin, yMax - yMin);
	} else
		return Rectangle.EMPTY;
}
 
源代码2 项目: openjdk-8   文件: Lines.java
public void testIterator() throws IOException {
    MockLineReader r = new MockLineReader(6);
    BufferedReader br = new BufferedReader(r);
    String line = br.readLine();
    assertEquals(r.getLineNumber(), 1, "Read one line");
    Stream<String> s = br.lines();
    Iterator<String> it = s.iterator();
    // Ensure iterate with only next works
    for (int i = 0; i < 5; i++) {
        String str = it.next();
        assertEquals(str, "Line " + (i + 2), "Addtional five lines");
    }
    // NoSuchElementException
    try {
        it.next();
        fail("Should have run out of lines.");
    } catch (NoSuchElementException nsse) {}
}
 
源代码3 项目: TencentKona-8   文件: Lines.java
public void testIterator() throws IOException {
    MockLineReader r = new MockLineReader(6);
    BufferedReader br = new BufferedReader(r);
    String line = br.readLine();
    assertEquals(r.getLineNumber(), 1, "Read one line");
    Stream<String> s = br.lines();
    Iterator<String> it = s.iterator();
    // Ensure iterate with only next works
    for (int i = 0; i < 5; i++) {
        String str = it.next();
        assertEquals(str, "Line " + (i + 2), "Addtional five lines");
    }
    // NoSuchElementException
    try {
        it.next();
        fail("Should have run out of lines.");
    } catch (NoSuchElementException nsse) {}
}
 
源代码4 项目: parquet-mr   文件: TestColumnIndexFiltering.java
private static void assertContains(Stream<User> expected, List<User> actual) {
  Iterator<User> expIt = expected.iterator();
  if (!expIt.hasNext()) {
    return;
  }
  User exp = expIt.next();
  for (User act : actual) {
    if (act.equals(exp)) {
      if (!expIt.hasNext()) {
        break;
      }
      exp = expIt.next();
    }
  }
  assertFalse("Not all expected elements are in the actual list. E.g.: " + exp, expIt.hasNext());
}
 
源代码5 项目: jdk8u60   文件: Lines.java
public void testIterator() throws IOException {
    MockLineReader r = new MockLineReader(6);
    BufferedReader br = new BufferedReader(r);
    String line = br.readLine();
    assertEquals(r.getLineNumber(), 1, "Read one line");
    Stream<String> s = br.lines();
    Iterator<String> it = s.iterator();
    // Ensure iterate with only next works
    for (int i = 0; i < 5; i++) {
        String str = it.next();
        assertEquals(str, "Line " + (i + 2), "Addtional five lines");
    }
    // NoSuchElementException
    try {
        it.next();
        fail("Should have run out of lines.");
    } catch (NoSuchElementException nsse) {}
}
 
源代码6 项目: funcj   文件: Parser.java
/**
 * Variation of {@link Parser#sequence(IList)} for {@link Stream}.
 * @param spt       the stream of {@code Parser} values
 * @param <E>       the error type
 * @param <T>       the value type of the {@code Parser}s in the stream
 * @return          a {@code Parser} which wraps an {@link Stream} of values
 */
static <E, T> Parser<E, Stream<T>> sequence(Stream<Parser<E, T>> spt) {
    final Iterator<Parser<E, T>> iter = spt.iterator();
    Parser<E, IList<T>> plt = pure(IList.empty());
    while (iter.hasNext()) {
        final Parser<E, T> pt = iter.next();
        plt = ap(plt.map(lt -> lt::add), pt);
    }
    return plt.map(IList::stream);
}
 
源代码7 项目: openjdk-jdk9   文件: Lines.java
public void testInterlacedRead() throws IOException {
    MockLineReader r = new MockLineReader(10);
    BufferedReader br = new BufferedReader(r);
    char[] buf = new char[5];
    Stream<String> s = br.lines();
    Iterator<String> it = s.iterator();

    br.read(buf);
    assertEquals(new String(buf), "Line ");
    assertEquals(it.next(), "1");
    try {
        s.iterator().next();
        fail("Should failed on second attempt to get iterator from s");
    } catch (IllegalStateException ise) {}
    br.read(buf, 0, 2);
    assertEquals(new String(buf, 0, 2), "Li");
    // Get stream again should continue from where left
    // Only read remaining of the line
    br.lines().limit(1L).forEach(line -> assertEquals(line, "ne 2"));
    br.read(buf, 0, 2);
    assertEquals(new String(buf, 0, 2), "Li");
    br.read(buf, 0, 2);
    assertEquals(new String(buf, 0, 2), "ne");
    assertEquals(it.next(), " 3");
    // Line 4
    br.readLine();
    // interator pick
    assertEquals(it.next(), "Line 5");
    // Another stream instantiated by lines()
    AtomicInteger line_no = new AtomicInteger(6);
    br.lines().forEach(l -> assertEquals(l, "Line " + line_no.getAndIncrement()));
    // Read after EOL
    assertFalse(it.hasNext());
}
 
源代码8 项目: onedev   文件: BitmappedReachabilityChecker.java
/**
 * Check all targets are reachable from the starters.
 * <p>
 * In this implementation, it is recommended to put the most popular
 * starters (e.g. refs/heads tips) at the beginning.
 */
@Override
public Optional<RevCommit> areAllReachable(Collection<RevCommit> targets,
		Stream<RevCommit> starters) throws MissingObjectException,
		IncorrectObjectTypeException, IOException {

	List<RevCommit> remainingTargets = new ArrayList<>(targets);

	walk.reset();
	walk.sort(RevSort.TOPO);

	// Filter emits only commits that are unreachable from previously
	// visited commits. Internally it keeps a bitmap of everything
	// reachable so far, which we use to discard reachable targets.
	BitmapIndex repoBitmaps = walk.getObjectReader().getBitmapIndex();
	ReachedFilter reachedFilter = new ReachedFilter(repoBitmaps);
	walk.setRevFilter(reachedFilter);

	Iterator<RevCommit> startersIter = starters.iterator();
	while (startersIter.hasNext()) {
		walk.markStart(startersIter.next());
		while (walk.next() != null) {
			remainingTargets.removeIf(reachedFilter::isReachable);

			if (remainingTargets.isEmpty()) {
				return Optional.empty();
			}
		}
		walk.reset();
	}

	return Optional.of(remainingTargets.get(0));
}
 
源代码9 项目: hottub   文件: TabulatorsTest.java
@Override
void assertValue(List<T> value, Supplier<Stream<T>> source, boolean ordered)
        throws ReflectiveOperationException {
    if (!List.class.isAssignableFrom(value.getClass()))
        fail(String.format("Class mismatch in ListAssertion: %s", value.getClass()));
    Stream<T> stream = source.get();
    List<T> result = new ArrayList<>();
    for (Iterator<T> it = stream.iterator(); it.hasNext(); ) // avoid capturing result::add
        result.add(it.next());
    if (StreamOpFlagTestHelper.isStreamOrdered(stream) && ordered)
        assertContents(value, result);
    else
        assertContentsUnordered(value, result);
}
 
源代码10 项目: dragonwell8_jdk   文件: Lines.java
public void testInterlacedRead() throws IOException {
    MockLineReader r = new MockLineReader(10);
    BufferedReader br = new BufferedReader(r);
    char[] buf = new char[5];
    Stream<String> s = br.lines();
    Iterator<String> it = s.iterator();

    br.read(buf);
    assertEquals(new String(buf), "Line ");
    assertEquals(it.next(), "1");
    try {
        s.iterator().next();
        fail("Should failed on second attempt to get iterator from s");
    } catch (IllegalStateException ise) {}
    br.read(buf, 0, 2);
    assertEquals(new String(buf, 0, 2), "Li");
    // Get stream again should continue from where left
    // Only read remaining of the line
    br.lines().limit(1L).forEach(line -> assertEquals(line, "ne 2"));
    br.read(buf, 0, 2);
    assertEquals(new String(buf, 0, 2), "Li");
    br.read(buf, 0, 2);
    assertEquals(new String(buf, 0, 2), "ne");
    assertEquals(it.next(), " 3");
    // Line 4
    br.readLine();
    // interator pick
    assertEquals(it.next(), "Line 5");
    // Another stream instantiated by lines()
    AtomicInteger line_no = new AtomicInteger(6);
    br.lines().forEach(l -> assertEquals(l, "Line " + line_no.getAndIncrement()));
    // Read after EOL
    assertFalse(it.hasNext());
}
 
源代码11 项目: jdk8u-jdk   文件: Lines.java
public void testInterlacedRead() throws IOException {
    MockLineReader r = new MockLineReader(10);
    BufferedReader br = new BufferedReader(r);
    char[] buf = new char[5];
    Stream<String> s = br.lines();
    Iterator<String> it = s.iterator();

    br.read(buf);
    assertEquals(new String(buf), "Line ");
    assertEquals(it.next(), "1");
    try {
        s.iterator().next();
        fail("Should failed on second attempt to get iterator from s");
    } catch (IllegalStateException ise) {}
    br.read(buf, 0, 2);
    assertEquals(new String(buf, 0, 2), "Li");
    // Get stream again should continue from where left
    // Only read remaining of the line
    br.lines().limit(1L).forEach(line -> assertEquals(line, "ne 2"));
    br.read(buf, 0, 2);
    assertEquals(new String(buf, 0, 2), "Li");
    br.read(buf, 0, 2);
    assertEquals(new String(buf, 0, 2), "ne");
    assertEquals(it.next(), " 3");
    // Line 4
    br.readLine();
    // interator pick
    assertEquals(it.next(), "Line 5");
    // Another stream instantiated by lines()
    AtomicInteger line_no = new AtomicInteger(6);
    br.lines().forEach(l -> assertEquals(l, "Line " + line_no.getAndIncrement()));
    // Read after EOL
    assertFalse(it.hasNext());
}
 
源代码12 项目: jdk8u-jdk   文件: TabulatorsTest.java
@Override
void assertValue(Collection<T> value, Supplier<Stream<T>> source, boolean ordered)
        throws ReflectiveOperationException {
    if (!clazz.isAssignableFrom(value.getClass()))
        fail(String.format("Class mismatch in CollectionAssertion: %s, %s", clazz, value.getClass()));
    Stream<T> stream = source.get();
    Collection<T> result = clazz.newInstance();
    for (Iterator<T> it = stream.iterator(); it.hasNext(); ) // avoid capturing result::add
        result.add(it.next());
    if (StreamOpFlagTestHelper.isStreamOrdered(stream) && targetOrdered && ordered)
        assertContents(value, result);
    else
        assertContentsUnordered(value, result);
}
 
源代码13 项目: monsoon   文件: SkippingIterator.java
public static <T> Stream<T> adaptStream(Stream<T> stream, Function<? super T, ? extends DateTime> timestamp_fn, Duration stepsize) {
    if (stepsize.getMillis() <= 0L) return stream;

    final Iterator<T> iter = new SkippingIterator<>(stream.iterator(), timestamp_fn, stepsize);
    final Spliterator<T> spliter = Spliterators.spliteratorUnknownSize(iter, NONNULL | IMMUTABLE | ORDERED);
    return StreamSupport.stream(spliter, false);
}
 
源代码14 项目: trainbenchmark   文件: ZipUtils.java
public static <T,U> boolean zip(final Iterable<T> ct, final Stream<U> cu, final ZipIterator<T,U> each) {
    final Iterator<T> it = ct.iterator();
    final Iterator<U> iu = cu.iterator();
    while (it.hasNext() && iu.hasNext()) {
        each.each(it.next(), iu.next());
    }
    return !it.hasNext() && !iu.hasNext();
}
 
源代码15 项目: jdk8u_jdk   文件: TabulatorsTest.java
@Override
void assertValue(List<T> value, Supplier<Stream<T>> source, boolean ordered)
        throws ReflectiveOperationException {
    if (!List.class.isAssignableFrom(value.getClass()))
        fail(String.format("Class mismatch in ListAssertion: %s", value.getClass()));
    Stream<T> stream = source.get();
    List<T> result = new ArrayList<>();
    for (Iterator<T> it = stream.iterator(); it.hasNext(); ) // avoid capturing result::add
        result.add(it.next());
    if (StreamOpFlagTestHelper.isStreamOrdered(stream) && ordered)
        assertContents(value, result);
    else
        assertContentsUnordered(value, result);
}
 
源代码16 项目: cyclops   文件: AbstractIterableXTest.java
@Test
public void headAndTailTest(){
	Stream<String> s = Stream.of("hello","world");
	Iterator<String> it = s.iterator();
	String head = it.next();
	Stream<String> tail = Streams.stream(it);
	tail.forEach(System.out::println);
}
 
源代码17 项目: herddb   文件: StreamDataScanner.java
public StreamDataScanner(
        Transaction transaction, String[] fieldNames, Column[] schema,
        Stream<DataAccessor> wrapped
) {
    super(transaction, fieldNames, schema);
    this.wrapped = wrapped.iterator();
    fetchNext();
    if (transaction != null) {
        transaction.increaseRefcount();
    }
}
 
源代码18 项目: dremio-oss   文件: CloseableRemoteIterator.java
CloseableRemoteIterator(Stream<T> stream) {
  this.stream = stream;
  this.iterator = stream.iterator();
}
 
源代码19 项目: stream-utils   文件: OrderedStreamUtils.java
/**
 * Java 8 streams don't support streaming groupings, just materialized grouping.
 * This groups a stream by a key, using the keying function provided.
 *
 * The stream must be sorted by the key for this to function properly.
 *
 * Note - when you use this operator, you need to be aware that you are relinquishing
 * ALL control of the base stream. Do NOT try to reuse the inputted stream. Do NOT
 * try to close the underlying stream. All interactions must now be done with the
 * stream you get in return.
 *
 * @param stream stream to group.
 * @param keyingFunction function to generate the key to be grouped by.
 * @return grouped stream.
 */
public static <TYPE, KEY> Stream<List<TYPE>> groupBy(Stream<TYPE> stream, Function<TYPE, KEY> keyingFunction) {
    final Iterator<TYPE> iterator = stream.iterator();

    final Iterator<List<TYPE>> iter = new KeyedBufferIterator<>(iterator, keyingFunction);

    return StreamSupport.stream(Spliterators.spliteratorUnknownSize(iter, 0), false)
            // Whenever the grouped stream is closed, we need to close the
            // underlying stream.
            .onClose(stream::close);
}
 
源代码20 项目: funcj   文件: FoldsGenEx.java
/**
 * Left-fold a function over a {@link Stream}.
 * @param f         the binary function to be applied for the fold
 * @param z         the starting value for the fold
 * @param str       the stream to be folded over
 * @param <T>       the stream element type
 * @param <R>       the result type of fold operation
 * @param <X>       the exception type
 * @return          the folded value
 * @throws X        the exception thrown by the function
 */
public static <T, R, X extends Exception> R foldLeft(F2<R, T, R, X> f, R z, Stream<T> str) throws X {
    R acc = z;
    for (Iterator<T> iter = str.iterator(); iter.hasNext();) {
        acc = f.apply(acc, iter.next());
    }
    return acc;
}