diff --git a/core-java-modules/core-java-streams-7/src/main/java/com/baeldung/streams/gatherer/SlidingWindowGatherer.java b/core-java-modules/core-java-streams-7/src/main/java/com/baeldung/streams/gatherer/SlidingWindowGatherer.java index 713d88e0e2a1..a4e761a99159 100644 --- a/core-java-modules/core-java-streams-7/src/main/java/com/baeldung/streams/gatherer/SlidingWindowGatherer.java +++ b/core-java-modules/core-java-streams-7/src/main/java/com/baeldung/streams/gatherer/SlidingWindowGatherer.java @@ -1,12 +1,13 @@ package com.baeldung.streams.gatherer; import java.util.*; -import java.util.function.BiConsumer; import java.util.function.Supplier; import java.util.stream.Gatherer; public class SlidingWindowGatherer implements Gatherer, List> { + private static final int WINDOW_SIZE = 3; + @Override public Supplier> initializer() { return ArrayDeque::new; @@ -18,15 +19,14 @@ public Integrator, Integer, List> integrator() { @Override public boolean integrate(Deque state, Integer element, Downstream> downstream) { state.addLast(element); - downstream.push(new ArrayList<>(state)); - state.removeFirst(); + if (state.size() > WINDOW_SIZE) { + state.removeFirst(); + } + if (state.size() == WINDOW_SIZE) { + downstream.push(new ArrayList<>(state)); + } return true; } }; } - - @Override - public BiConsumer, Downstream>> finisher() { - return (state, downstream) -> {}; - } -} +} \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-springdoc-2/pom.xml b/spring-boot-modules/spring-boot-springdoc-2/pom.xml index 335e9b611f1a..29b9b8762258 100644 --- a/spring-boot-modules/spring-boot-springdoc-2/pom.xml +++ b/spring-boot-modules/spring-boot-springdoc-2/pom.xml @@ -58,11 +58,6 @@ org.springdoc springdoc-openapi-starter-webmvc-ui ${springdoc.version} - - - org.springdoc - springdoc-openapi-starter-common - ${springdoc.version} org.springframework.restdocs @@ -142,4 +137,4 @@ com.baeldung.restdocopenapi.Application - + \ No newline at end of file