public Stream<Stream<E>> streamC(final int fromColumnIndex, final int toColumnIndex) {
        N.checkFromToIndex(fromColumnIndex, toColumnIndex, columnLength());

        if (rowLength() == 0 || columnLength() == 0) {
            return Stream.empty();
        }

        return Stream.of(new ObjIteratorEx<Stream<E>>() {
            private final int toIndex = toColumnIndex;
            private int cursor = fromColumnIndex;

            @Override
            public boolean hasNext() {
                return cursor < toIndex;
            }

            @Override
            public Stream<E> next() {
                if (cursor >= toIndex) {
                    throw new NoSuchElementException();
                }

                if (_initialized) {
                    return Stream.of(_columnList.get(cursor++));
                } else {
                    cursor++;
                    return Stream.repeat(null, rowLength());
                }
            }

            @Override
            public void skip(long n) {
                N.checkArgNotNegative(n, "n");

                cursor = n < toIndex - cursor ? cursor + (int) n : toIndex;
            }

            @Override
            public long count() {
                return toIndex - cursor;
            }
        });
    }
public Stream < Stream < E > > streamC ( final int fromColumnIndex , final int toColumnIndex ) { N . checkFromToIndex ( fromColumnIndex , toColumnIndex , columnLength ( ) ) ; if ( rowLength ( ) == 0 || columnLength ( ) == 0 ) { return Stream . empty ( ) ; } return Stream . of ( new ObjIteratorEx < Stream < E > > ( ) { private final int toIndex = toColumnIndex ; private int cursor = fromColumnIndex ; @ Override public boolean hasNext ( ) { return cursor < toIndex ; } @ Override public Stream < E > next ( ) { if ( cursor >= toIndex ) { throw new NoSuchElementException ( ) ; } if ( _initialized ) { return Stream . of ( _columnList . get ( cursor ++ ) ) ; } else { cursor ++ ; return Stream . repeat ( null , rowLength ( ) ) ; } } @ Override public void skip ( long n ) { N . checkArgNotNegative ( n , "n" ) ; cursor = n < toIndex - cursor ? cursor + ( int ) n : toIndex ; } @ Override public long count ( ) { return toIndex - cursor ; } } ) ; }
@param fromColumnIndex
@param toColumnIndex
@return a stream based on the order of column.