public static <T> Spliterator<T> spliteratorUnknownSize(Iterator<? extends T> iterator,
                                                            int characteristics) {
        return new IteratorSpliterator<>(Objects.requireNonNull(iterator), characteristics);
    }
public static < T > Spliterator < T > spliteratorUnknownSize ( Iterator < ? extends T > iterator , int characteristics ) { return new IteratorSpliterator < > ( Objects . requireNonNull ( iterator ) , characteristics ) ; }
Creates a {@code Spliterator} using a given {@code Iterator}
as the source of elements, with no initial size estimate.

<p>The spliterator is not
<em><a href="Spliterator.html#binding">late-binding</a></em>, inherits
the <em>fail-fast</em> properties of the iterator, and implements
{@code trySplit} to permit limited parallelism.

<p>Traversal of elements should be accomplished through the spliterator.
The behaviour of splitting and traversal is undefined if the iterator is
operated on after the spliterator is returned.

@param <T> Type of elements
@param iterator The iterator for the source
@param characteristics Characteristics of this spliterator's source
or elements ({@code SIZED} and {@code SUBSIZED}, if supplied, are
ignored and are not reported.)
@return A spliterator from an iterator
@throws NullPointerException if the given iterator is {@code null}