diff --git a/core-java-modules/core-java-streams-5/pom.xml b/core-java-modules/core-java-streams-5/pom.xml
index dc97d81b3d..042186c9bf 100644
--- a/core-java-modules/core-java-streams-5/pom.xml
+++ b/core-java-modules/core-java-streams-5/pom.xml
@@ -43,6 +43,12 @@
vavr
${vavr.version}
+
+ com.codepoetics
+ protonpack
+ 1.16
+
+
diff --git a/core-java-modules/core-java-streams-5/src/test/java/com/baeldung/streams/firstmatchingelement/FirstMatchingElementUnitTest.java b/core-java-modules/core-java-streams-5/src/test/java/com/baeldung/streams/firstmatchingelement/FirstMatchingElementUnitTest.java
new file mode 100644
index 0000000000..3e9cbcdc0b
--- /dev/null
+++ b/core-java-modules/core-java-streams-5/src/test/java/com/baeldung/streams/firstmatchingelement/FirstMatchingElementUnitTest.java
@@ -0,0 +1,104 @@
+package com.baeldung.streams.firstmatchingelement;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Optional;
+import java.util.OptionalInt;
+import java.util.stream.IntStream;
+
+import org.assertj.core.util.Lists;
+import org.junit.Test;
+
+import com.codepoetics.protonpack.StreamUtils;
+
+public class FirstMatchingElementUnitTest {
+
+ @Test
+ public void testWithForLoop() {
+ List