public final static <T> boolean startsWith(final Stream<T> stream, final Iterator<T> iterator) {
        final Iterator<T> it = stream.iterator();
        while (iterator.hasNext()) {
            if (!it.hasNext())
                return false;
            if (!Objects.equals(it.next(), iterator.next()))
                return false;
        }
        return true;

    }
public final static < T > boolean startsWith ( final Stream < T > stream , final Iterator < T > iterator ) { final Iterator < T > it = stream . iterator ( ) ; while ( iterator . hasNext ( ) ) { if ( ! it . hasNext ( ) ) return false ; if ( ! Objects . equals ( it . next ( ) , iterator . next ( ) ) ) return false ; } return true ; }
<pre>
{@code
assertTrue(Streams.startsWith(Stream.of(1,2,3,4),Arrays.asList(1,2,3).iterator()))
}</pre>

@param iterator
@return True if Monad starts with Iterators sequence of data