diff --git a/core-java-modules/core-java-9-improvements/src/test/java/com/baeldung/java9/language/stream/CollectorImprovementUnitTest.java b/core-java-modules/core-java-9-improvements/src/test/java/com/baeldung/java9/language/stream/CollectorImprovementUnitTest.java deleted file mode 100644 index b3bef5edece8..000000000000 --- a/core-java-modules/core-java-9-improvements/src/test/java/com/baeldung/java9/language/stream/CollectorImprovementUnitTest.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.baeldung.java9.language.stream; - -import org.junit.Test; - -import java.util.*; -import java.util.stream.Collectors; -import java.util.function.Function; - -import static org.junit.Assert.assertEquals; - -public class CollectorImprovementUnitTest { - @Test - public void givenList_whenSatifyPredicate_thenMapValueWithOccurences() { - List numbers = List.of(1, 2, 3, 5, 5); - - Map result = numbers.stream().filter(val -> val > 3).collect(Collectors.groupingBy(Function.identity(), Collectors.counting())); - - assertEquals(1, result.size()); - - result = numbers.stream().collect(Collectors.groupingBy(Function.identity(), Collectors.filtering(val -> val > 3, Collectors.counting()))); - - assertEquals(4, result.size()); - } - - @Test - public void givenListOfBlogs_whenAuthorName_thenMapAuthorWithComments() { - Blog blog1 = new Blog("1", "Nice", "Very Nice"); - Blog blog2 = new Blog("2", "Disappointing", "Ok", "Could be better"); - List blogs = List.of(blog1, blog2); - - Map>> authorComments1 = blogs.stream().collect(Collectors.groupingBy(Blog::getAuthorName, Collectors.mapping(Blog::getComments, Collectors.toList()))); - - assertEquals(2, authorComments1.size()); - assertEquals(2, authorComments1.get("1").get(0).size()); - assertEquals(3, authorComments1.get("2").get(0).size()); - - Map> authorComments2 = blogs.stream().collect(Collectors.groupingBy(Blog::getAuthorName, Collectors.flatMapping(blog -> blog.getComments().stream(), Collectors.toList()))); - - assertEquals(2, authorComments2.size()); - assertEquals(2, authorComments2.get("1").size()); - assertEquals(3, authorComments2.get("2").size()); - } -} - -class Blog { - private String authorName; - private List comments; - - public Blog(String authorName, String... comments) { - this.authorName = authorName; - this.comments = List.of(comments); - } - - public String getAuthorName() { - return this.authorName; - } - - public List getComments() { - return this.comments; - } -} diff --git a/core-java-modules/core-java-streams-simple/src/main/java/com/baeldung/streams/collectors/Blog.java b/core-java-modules/core-java-streams-simple/src/main/java/com/baeldung/streams/collectors/Blog.java new file mode 100644 index 000000000000..37abe5fa9913 --- /dev/null +++ b/core-java-modules/core-java-streams-simple/src/main/java/com/baeldung/streams/collectors/Blog.java @@ -0,0 +1,22 @@ +package com.baeldung.streams.collectors; + +import java.util.List; + +public class Blog { + + private String authorName; + private List comments; + + public Blog(String authorName, String... comments) { + this.authorName = authorName; + this.comments = List.of(comments); + } + + public String getAuthorName() { + return this.authorName; + } + + public List getComments() { + return this.comments; + } +} diff --git a/core-java-modules/core-java-streams-simple/src/test/java/com/baeldung/streams/collectors/CollectorImprovementUnitTest.java b/core-java-modules/core-java-streams-simple/src/test/java/com/baeldung/streams/collectors/CollectorImprovementUnitTest.java new file mode 100644 index 000000000000..d650d8c6a0cd --- /dev/null +++ b/core-java-modules/core-java-streams-simple/src/test/java/com/baeldung/streams/collectors/CollectorImprovementUnitTest.java @@ -0,0 +1,57 @@ +package com.baeldung.streams.collectors; + +import static org.junit.Assert.assertEquals; + +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +import org.junit.jupiter.api.Test; + +class CollectorImprovementUnitTest { + + @Test + void givenList_whenSatifyPredicate_thenMapValueWithOccurences() { + List numbers = List.of(1, 2, 3, 5, 5); + + Map result = numbers.stream() + .filter(val -> val > 3) + .collect(Collectors.groupingBy(Function.identity(), Collectors.counting())); + + assertEquals(1, result.size()); + + result = numbers.stream() + .collect(Collectors.groupingBy(Function.identity(), Collectors.filtering(val -> val > 3, Collectors.counting()))); + + assertEquals(4, result.size()); + } + + @Test + void givenListOfBlogs_whenAuthorName_thenMapAuthorWithComments() { + Blog blog1 = new Blog("1", "Nice", "Very Nice"); + Blog blog2 = new Blog("2", "Disappointing", "Ok", "Could be better"); + List blogs = List.of(blog1, blog2); + + Map>> authorComments1 = blogs.stream() + .collect(Collectors.groupingBy(Blog::getAuthorName, Collectors.mapping(Blog::getComments, Collectors.toList()))); + + assertEquals(2, authorComments1.size()); + assertEquals(2, authorComments1.get("1") + .get(0) + .size()); + assertEquals(3, authorComments1.get("2") + .get(0) + .size()); + + Map> authorComments2 = blogs.stream() + .collect(Collectors.groupingBy(Blog::getAuthorName, Collectors.flatMapping(blog -> blog.getComments() + .stream(), Collectors.toList()))); + + assertEquals(2, authorComments2.size()); + assertEquals(2, authorComments2.get("1") + .size()); + assertEquals(3, authorComments2.get("2") + .size()); + } +}