diff --git a/core-java-collections/pom.xml b/core-java-collections/pom.xml
index 92e4278593..d0c3c25beb 100644
--- a/core-java-collections/pom.xml
+++ b/core-java-collections/pom.xml
@@ -63,6 +63,12 @@
jmh-generator-annprocess
${openjdk.jmh.version}
+
+ org.apache.commons
+ commons-exec
+ 1.3
+
+
diff --git a/core-java-collections/src/main/java/com/baeldung/combiningcollections/CombiningArrays.java b/core-java-collections/src/main/java/com/baeldung/combiningcollections/CombiningArrays.java
new file mode 100644
index 0000000000..2ad48033c0
--- /dev/null
+++ b/core-java-collections/src/main/java/com/baeldung/combiningcollections/CombiningArrays.java
@@ -0,0 +1,39 @@
+package com.baeldung.combiningcollections;
+
+import java.util.Arrays;
+import java.util.stream.Stream;
+
+import org.apache.commons.lang3.ArrayUtils;
+
+import com.google.common.collect.ObjectArrays;
+
+public class CombiningArrays {
+
+ public static Object[] usingNativeJava(Object[] first, Object[] second) {
+ Object[] combined = new Object[first.length + second.length];
+ System.arraycopy(first, 0, combined, 0, first.length);
+ System.arraycopy(second, 0, combined, first.length, second.length);
+ return combined;
+ }
+
+ public static Object[] usingJava8ObjectStream(Object[] first, Object[] second) {
+ Object[] combined = Stream.concat(Arrays.stream(first), Arrays.stream(second)).toArray();
+ return combined;
+ }
+
+ public static Object[] usingJava8FlatMaps(Object[] first, Object[] second) {
+ Object[] combined = Stream.of(first, second).flatMap(Stream::of).toArray(String[]::new);
+ return combined;
+ }
+
+ public static Object[] usingApacheCommons(Object[] first, Object[] second) {
+ Object[] combined = ArrayUtils.addAll(first, second);
+ return combined;
+ }
+
+ public static Object[] usingGuava(Object[] first, Object[] second) {
+ Object [] combined = ObjectArrays.concat(first, second, Object.class);
+ return combined;
+ }
+
+}
diff --git a/core-java-collections/src/main/java/com/baeldung/combiningcollections/CombiningLists.java b/core-java-collections/src/main/java/com/baeldung/combiningcollections/CombiningLists.java
new file mode 100644
index 0000000000..3fdf672758
--- /dev/null
+++ b/core-java-collections/src/main/java/com/baeldung/combiningcollections/CombiningLists.java
@@ -0,0 +1,46 @@
+package com.baeldung.combiningcollections;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import org.apache.commons.collections4.ListUtils;
+
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+
+public class CombiningLists {
+
+ public static List