From 7626de099f84526ddb7286bfd6d09f6df83011bc Mon Sep 17 00:00:00 2001 From: Neetika23 Date: Mon, 8 Dec 2025 23:19:25 +0530 Subject: [PATCH 1/4] 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/4] 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/4] 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()); - } } From e11e2d802e41541510f067059ff147a21059b159 Mon Sep 17 00:00:00 2001 From: Neetika23 Date: Tue, 16 Dec 2025 22:21:25 +0530 Subject: [PATCH 4/4] BAEL-9499 --- .../JsonArrayToIntArrayUnitTest.java | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 json-modules/json-arrays/src/test/java/com/baeldung/jsonarray/JsonArrayToIntArrayUnitTest.java diff --git a/json-modules/json-arrays/src/test/java/com/baeldung/jsonarray/JsonArrayToIntArrayUnitTest.java b/json-modules/json-arrays/src/test/java/com/baeldung/jsonarray/JsonArrayToIntArrayUnitTest.java new file mode 100644 index 000000000000..3c5a68abd22d --- /dev/null +++ b/json-modules/json-arrays/src/test/java/com/baeldung/jsonarray/JsonArrayToIntArrayUnitTest.java @@ -0,0 +1,58 @@ +package com.baeldung.jsonarray; + +import static org.junit.jupiter.api.Assertions.*; + +import org.json.JSONArray; +import org.junit.jupiter.api.Test; + +import java.util.stream.IntStream; + + +class JsonArrayToIntArrayUnitTest { + + @Test + void givenJsonArray_whenUsingLoop_thenIntArrayIsReturned() { + JSONArray jsonArray = new JSONArray("[1, 2, 3]"); + int[] result = new int[jsonArray.length()]; + for (int i = 0; i < jsonArray.length(); i++) { + result[i] = jsonArray.getInt(i); + } + + assertArrayEquals(new int[]{1, 2, 3}, result); + } + + @Test + void givenJsonArray_whenUsingStreams_thenIntArrayIsReturned() { + JSONArray jsonArray = new JSONArray("[10, 20, 30]"); + int[] result = IntStream.range(0, jsonArray.length()) + .map(jsonArray::getInt) + .toArray(); + + assertArrayEquals(new int[]{10, 20, 30}, result); + } + + @Test + void givenNullJsonArray_whenConvertingSafely_thenEmptyArrayIsReturned() { + int[] result = toIntArraySafely(null); + assertEquals(0, result.length); + } + + @Test + void givenEmptyJsonArray_whenConvertingSafely_thenEmptyArrayIsReturned() { + JSONArray jsonArray = new JSONArray(); + int[] result = toIntArraySafely(jsonArray); + assertEquals(0, result.length); + } + + private int[] toIntArraySafely(JSONArray jsonArray) { + if (jsonArray == null || jsonArray.isEmpty()) { + return new int[0]; + } + + int[] result = new int[jsonArray.length()]; + for (int i = 0; i < jsonArray.length(); i++) { + result[i] = jsonArray.getInt(i); + } + return result; + } +}