/** * Create a sliding view over this Stream * <pre> * {@code * List<List<Integer>> list = StreamUtils.sliding(Stream.of(1,2,3,4,5,6) ,2) .collect(Collectors.toList()); assertThat(list.get(0),hasItems(1,2)); assertThat(list.get(1),hasItems(2,3)); * } * </pre> * * @param stream Stream to create sliding view on * @param windowSize size of window * @return */ public final static <T> Stream<List<T>> sliding(Stream<T> stream,int windowSize) { return sliding(stream,windowSize,1); }
/** * Create a sliding view over this Stream * <pre> * {@code * List<List<Integer>> list = StreamUtils.sliding(Stream.of(1,2,3,4,5,6) ,2) .collect(Collectors.toList()); assertThat(list.get(0),hasItems(1,2)); assertThat(list.get(1),hasItems(2,3)); * } * </pre> * * @param stream Stream to create sliding view on * @param windowSize size of window * @return */ public final static <T> Stream<List<T>> sliding(Stream<T> stream,int windowSize) { return sliding(stream,windowSize,1); }
/** * Create a sliding view over this Sequence * <pre> * {@code * List<List<Integer>> list = anyM(Stream.of(1,2,3,4,5,6)) .asSequence() .sliding(3,2) .collect(Collectors.toList()); assertThat(list.get(0),hasItems(1,2,3)); assertThat(list.get(1),hasItems(3,4,5)); * * } * * </pre> * * @param windowSize number of elements in each batch * @param increment for each window * @return SequenceM with sliding view */ public final SequenceM<List<T>> sliding(int windowSize,int increment) { return StreamUtils.sequenceM(StreamUtils.sliding(stream,windowSize,increment),reversable); }
/** * Create a sliding view over this Sequence * * <pre> * {@code * List<List<Integer>> list = anyM(Stream.of(1,2,3,4,5,6)) .asSequence() .sliding(2) .collect(Collectors.toList()); assertThat(list.get(0),hasItems(1,2)); assertThat(list.get(1),hasItems(2,3)); * * } * * </pre> * @param windowSize * Size of sliding window * @return SequenceM with sliding view */ public final SequenceM<List<T>> sliding(int windowSize) { return StreamUtils.sequenceM(StreamUtils.sliding(stream,windowSize),reversable); } /**
/** * Create a sliding view over this Sequence * <pre> * {@code * List<List<Integer>> list = anyM(Stream.of(1,2,3,4,5,6)) .asSequence() .sliding(3,2) .collect(Collectors.toList()); assertThat(list.get(0),hasItems(1,2,3)); assertThat(list.get(1),hasItems(3,4,5)); * * } * * </pre> * * @param windowSize number of elements in each batch * @param increment for each window * @return SequenceM with sliding view */ public final SequenceM<List<T>> sliding(int windowSize,int increment) { return monad(StreamUtils.sliding(monad,windowSize,increment)); }
/** * Create a sliding view over this Sequence * * <pre> * {@code * List<List<Integer>> list = anyM(Stream.of(1,2,3,4,5,6)) .asSequence() .sliding(2) .collect(Collectors.toList()); assertThat(list.get(0),hasItems(1,2)); assertThat(list.get(1),hasItems(2,3)); * * } * * </pre> * @param windowSize * Size of sliding window * @return SequenceM with sliding view */ public final SequenceM<List<T>> sliding(int windowSize) { return monad(StreamUtils.sliding(monad,windowSize)); } /**