0

查询是否已使用流的最佳方法是什么?Stream::isConsumed曾经考虑过类似的事情吗?

我承认这类似于以下问题:

如何检查 Java 8 Stream 是否为空?

尽管如此,差异似乎是检查流消耗似乎不需要部分消耗所述流。上面链接的答案是否也适用于这里?

我的用例类似于以下内容:

/**
   ... This operation ensures, regardless whether the prefix or suffix stream is
   parallel, that the suffix stream is computed only after the prefix stream has
   been exhausted...
 */
public static <E> Stream<E> andThen(
        Stream<? extends E> stream,
        Supplier<? extends Stream<? extends E>> after);

显示实施细节的编辑(4/23/18) 并不那么重要。


andThen中,stream必须在附加由 产生的剩余元素之前耗尽after

诚然,有些人可能更喜欢写 a Spliterator,但即使这样,trySplit您也可能想知道从前缀拆分器拆分出来的子代在拆分后缀之前是否已经用尽了它们的元素(如果不是......?);您可能不想过早地使用任何前缀元素来这样做。

轻微相关;可能是正交的;窥视拆分器是否有用?

abstract boolean tryPeek(Consumer<? super E> action);
abstract boolean skip();
default boolean tryAdvance(Consumer<? super E> action) {return tryPeek(action) && skip();}
4

0 回答 0