From 7626de099f84526ddb7286bfd6d09f6df83011bc Mon Sep 17 00:00:00 2001 From: Neetika23 Date: Mon, 8 Dec 2025 23:19:25 +0530 Subject: [PATCH 1/3] BAEL-9498 --- .../entityCollection/EntityUtils.java | 23 ++++ .../entityCollection/IdExtractor.java | 27 ++++ .../com/baeldung/entityCollection/User.java | 15 +++ .../IdExtractionUnitTest.java | 116 ++++++++++++++++++ 4 files changed, 181 insertions(+) create mode 100644 core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entityCollection/EntityUtils.java create mode 100644 core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entityCollection/IdExtractor.java create mode 100644 core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entityCollection/User.java create mode 100644 core-java-modules/core-java-collections-7/src/test/java/com/baeldung/entityCollection/IdExtractionUnitTest.java diff --git a/core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entityCollection/EntityUtils.java b/core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entityCollection/EntityUtils.java new file mode 100644 index 000000000000..5e92cee30962 --- /dev/null +++ b/core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entityCollection/EntityUtils.java @@ -0,0 +1,23 @@ +package com.baeldung.entityCollection; + +import java.util.Collection; +import java.util.List; +import java.util.Set; +import java.util.function.Function; +import java.util.stream.Collectors; + +public class EntityUtils { + + public static List extractField(Collection entities, Function extractor) { + return entities.stream() + .map(extractor) + .collect(Collectors.toList()); + } + + public static Set extractFieldAsSet(Collection entities, Function extractor) { + return entities.stream() + .map(extractor) + .collect(Collectors.toSet()); + } +} + diff --git a/core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entityCollection/IdExtractor.java b/core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entityCollection/IdExtractor.java new file mode 100644 index 000000000000..9a836bea53cc --- /dev/null +++ b/core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entityCollection/IdExtractor.java @@ -0,0 +1,27 @@ +package com.baeldung.entityCollection; + +import java.util.*; +import java.util.stream.Collectors; + +public class IdExtractor { + + public static List extractIdsClassic(List users) { + List ids = new ArrayList<>(); + for (User user : users) { + ids.add(user.getId()); + } + return ids; + } + + public static List extractIdsStream(List users) { + return users.stream() + .map(User::getId) + .collect(Collectors.toList()); + } + + public static Set extractUniqueIds(List users) { + return users.stream() + .map(User::getId) + .collect(Collectors.toSet()); + } +} diff --git a/core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entityCollection/User.java b/core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entityCollection/User.java new file mode 100644 index 000000000000..3f25bba93173 --- /dev/null +++ b/core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entityCollection/User.java @@ -0,0 +1,15 @@ +package com.baeldung.entityCollection; + +public class User { + private final Long id; + private final String name; + + public User(Long id, String name) { + this.id = id; + this.name = name; + } + + public Long getId() { + return id; + } +} diff --git a/core-java-modules/core-java-collections-7/src/test/java/com/baeldung/entityCollection/IdExtractionUnitTest.java b/core-java-modules/core-java-collections-7/src/test/java/com/baeldung/entityCollection/IdExtractionUnitTest.java new file mode 100644 index 000000000000..048b8b3194e6 --- /dev/null +++ b/core-java-modules/core-java-collections-7/src/test/java/com/baeldung/entityCollection/IdExtractionUnitTest.java @@ -0,0 +1,116 @@ +package com.baeldung.entityCollection; + +import org.junit.jupiter.api.Test; + +import java.util.*; + +import static org.junit.jupiter.api.Assertions.*; + +class IdExtractionUnitTest { + + @Test + void givenListOfUsers_whenUsingClassicLoop_thenReturnListOfIds() { + List users = Arrays.asList( + new User(1L, "A"), + new User(2L, "B"), + new User(3L, "C") + ); + + List ids = IdExtractor.extractIdsClassic(users); + + assertEquals(Arrays.asList(1L, 2L, 3L), ids); + } + + @Test + void givenEmptyUsersList_whenUsingClassicLoop_thenReturnEmptyList() { + List users = List.of(); + List ids = IdExtractor.extractIdsClassic(users); + assertTrue(ids.isEmpty()); + } + + @Test + void givenUsersList_whenUsingStream_thenReturnListOfIds() { + List users = Arrays.asList( + new User(10L, "A"), + new User(20L, "B") + ); + + List ids = IdExtractor.extractIdsStream(users); + assertEquals(Arrays.asList(10L, 20L), ids); + } + + @Test + void givenEmptyUsersList_whenUsingStream_thenReturnEmptyList() { + List users = List.of(); + List ids = IdExtractor.extractIdsStream(users); + assertTrue(ids.isEmpty()); + } + + @Test + void givenUsersWithNullIds_whenUsingStream_thenAllowNullValuesInList() { + List users = Arrays.asList( + new User(null, "A"), + new User(5L, "B") + ); + + List ids = IdExtractor.extractIdsStream(users); + assertEquals(Arrays.asList(null, 5L), ids); + } + + @Test + void givenUsersWithDuplicateIds_whenUsingUniqueIdExtractor_thenReturnUniqueSet() { + List users = Arrays.asList( + new User(1L, "A"), + new User(1L, "B"), + new User(2L, "C") + ); + + Set ids = IdExtractor.extractUniqueIds(users); + assertEquals(Set.of(1L, 2L), ids); + } + + @Test + void givenEmptyUsersList_whenUsingUniqueIdExtractor_thenReturnEmptySet() { + List users = List.of(); + Set ids = IdExtractor.extractUniqueIds(users); + assertTrue(ids.isEmpty()); + } + + @Test + void givenListOfUsers_whenUsingUtilityExtractor_thenReturnListOfIds() { + List users = Arrays.asList( + new User(100L, "A"), + new User(200L, "B") + ); + + List ids = EntityUtils.extractField(users, User::getId); + assertEquals(Arrays.asList(100L, 200L), ids); + } + + @Test + void givenEmptyList_whenUsingUtilityExtractor_thenReturnEmptyList() { + List users = List.of(); + List ids = EntityUtils.extractField(users, User::getId); + assertTrue(ids.isEmpty()); + } + + @Test + void givenUsersWithDuplicates_whenUsingUtilityExtractorAsSet_thenReturnUniqueIds() { + List users = Arrays.asList( + new User(5L, "A"), + new User(5L, "B"), + new User(6L, "C") + ); + + Set ids = EntityUtils.extractFieldAsSet(users, User::getId); + assertEquals(Set.of(5L, 6L), ids); + } + + @Test + void givenEmptyList_whenUsingUtilityExtractorAsSet_thenReturnEmptySet() { + List users = List.of(); + Set ids = EntityUtils.extractFieldAsSet(users, User::getId); + assertTrue(ids.isEmpty()); + } +} + From e7f285c9502d3ed2f153d9206e8d17b7a37fabd4 Mon Sep 17 00:00:00 2001 From: Neetika23 Date: Thu, 11 Dec 2025 22:53:53 +0530 Subject: [PATCH 2/3] BAEL-9498 --- .../{entityCollection => entitycollection}/EntityUtils.java | 2 +- .../{entityCollection => entitycollection}/IdExtractor.java | 2 +- .../baeldung/{entityCollection => entitycollection}/User.java | 2 +- .../IdExtractionUnitTest.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) rename core-java-modules/core-java-collections-7/src/main/java/com/baeldung/{entityCollection => entitycollection}/EntityUtils.java (94%) rename core-java-modules/core-java-collections-7/src/main/java/com/baeldung/{entityCollection => entitycollection}/IdExtractor.java (94%) rename core-java-modules/core-java-collections-7/src/main/java/com/baeldung/{entityCollection => entitycollection}/User.java (85%) rename core-java-modules/core-java-collections-7/src/test/java/com/baeldung/{entityCollection => entitycollection}/IdExtractionUnitTest.java (98%) diff --git a/core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entityCollection/EntityUtils.java b/core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entitycollection/EntityUtils.java similarity index 94% rename from core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entityCollection/EntityUtils.java rename to core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entitycollection/EntityUtils.java index 5e92cee30962..6b32ffda5be8 100644 --- a/core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entityCollection/EntityUtils.java +++ b/core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entitycollection/EntityUtils.java @@ -1,4 +1,4 @@ -package com.baeldung.entityCollection; +package com.baeldung.entitycollection; import java.util.Collection; import java.util.List; diff --git a/core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entityCollection/IdExtractor.java b/core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entitycollection/IdExtractor.java similarity index 94% rename from core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entityCollection/IdExtractor.java rename to core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entitycollection/IdExtractor.java index 9a836bea53cc..2503b1b8d387 100644 --- a/core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entityCollection/IdExtractor.java +++ b/core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entitycollection/IdExtractor.java @@ -1,4 +1,4 @@ -package com.baeldung.entityCollection; +package com.baeldung.entitycollection; import java.util.*; import java.util.stream.Collectors; diff --git a/core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entityCollection/User.java b/core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entitycollection/User.java similarity index 85% rename from core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entityCollection/User.java rename to core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entitycollection/User.java index 3f25bba93173..f5a0bb0e2e68 100644 --- a/core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entityCollection/User.java +++ b/core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entitycollection/User.java @@ -1,4 +1,4 @@ -package com.baeldung.entityCollection; +package com.baeldung.entitycollection; public class User { private final Long id; diff --git a/core-java-modules/core-java-collections-7/src/test/java/com/baeldung/entityCollection/IdExtractionUnitTest.java b/core-java-modules/core-java-collections-7/src/test/java/com/baeldung/entitycollection/IdExtractionUnitTest.java similarity index 98% rename from core-java-modules/core-java-collections-7/src/test/java/com/baeldung/entityCollection/IdExtractionUnitTest.java rename to core-java-modules/core-java-collections-7/src/test/java/com/baeldung/entitycollection/IdExtractionUnitTest.java index 048b8b3194e6..f7cf321089e9 100644 --- a/core-java-modules/core-java-collections-7/src/test/java/com/baeldung/entityCollection/IdExtractionUnitTest.java +++ b/core-java-modules/core-java-collections-7/src/test/java/com/baeldung/entitycollection/IdExtractionUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.entityCollection; +package com.baeldung.entitycollection; import org.junit.jupiter.api.Test; From bfaa358f5dca65cc111ac8ce4139f49d8a4d1f01 Mon Sep 17 00:00:00 2001 From: Neetika23 Date: Fri, 12 Dec 2025 00:25:53 +0530 Subject: [PATCH 3/3] BAEL-9498 --- .../entitycollection/EntityUtils.java | 23 ------------ .../IdExtractionUnitTest.java | 37 ------------------- 2 files changed, 60 deletions(-) delete mode 100644 core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entitycollection/EntityUtils.java diff --git a/core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entitycollection/EntityUtils.java b/core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entitycollection/EntityUtils.java deleted file mode 100644 index 6b32ffda5be8..000000000000 --- a/core-java-modules/core-java-collections-7/src/main/java/com/baeldung/entitycollection/EntityUtils.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.baeldung.entitycollection; - -import java.util.Collection; -import java.util.List; -import java.util.Set; -import java.util.function.Function; -import java.util.stream.Collectors; - -public class EntityUtils { - - public static List extractField(Collection entities, Function extractor) { - return entities.stream() - .map(extractor) - .collect(Collectors.toList()); - } - - public static Set extractFieldAsSet(Collection entities, Function extractor) { - return entities.stream() - .map(extractor) - .collect(Collectors.toSet()); - } -} - diff --git a/core-java-modules/core-java-collections-7/src/test/java/com/baeldung/entitycollection/IdExtractionUnitTest.java b/core-java-modules/core-java-collections-7/src/test/java/com/baeldung/entitycollection/IdExtractionUnitTest.java index f7cf321089e9..34187a9e9b74 100644 --- a/core-java-modules/core-java-collections-7/src/test/java/com/baeldung/entitycollection/IdExtractionUnitTest.java +++ b/core-java-modules/core-java-collections-7/src/test/java/com/baeldung/entitycollection/IdExtractionUnitTest.java @@ -75,42 +75,5 @@ void givenEmptyUsersList_whenUsingUniqueIdExtractor_thenReturnEmptySet() { Set ids = IdExtractor.extractUniqueIds(users); assertTrue(ids.isEmpty()); } - - @Test - void givenListOfUsers_whenUsingUtilityExtractor_thenReturnListOfIds() { - List users = Arrays.asList( - new User(100L, "A"), - new User(200L, "B") - ); - - List ids = EntityUtils.extractField(users, User::getId); - assertEquals(Arrays.asList(100L, 200L), ids); - } - - @Test - void givenEmptyList_whenUsingUtilityExtractor_thenReturnEmptyList() { - List users = List.of(); - List ids = EntityUtils.extractField(users, User::getId); - assertTrue(ids.isEmpty()); - } - - @Test - void givenUsersWithDuplicates_whenUsingUtilityExtractorAsSet_thenReturnUniqueIds() { - List users = Arrays.asList( - new User(5L, "A"), - new User(5L, "B"), - new User(6L, "C") - ); - - Set ids = EntityUtils.extractFieldAsSet(users, User::getId); - assertEquals(Set.of(5L, 6L), ids); - } - - @Test - void givenEmptyList_whenUsingUtilityExtractorAsSet_thenReturnEmptySet() { - List users = List.of(); - Set ids = EntityUtils.extractFieldAsSet(users, User::getId); - assertTrue(ids.isEmpty()); - } }