diff --git a/core-java-modules/core-java-9/README.md b/core-java-modules/core-java-9/README.md
index e2bea5f7e2..bfd426b9c1 100644
--- a/core-java-modules/core-java-9/README.md
+++ b/core-java-modules/core-java-9/README.md
@@ -9,6 +9,7 @@ This module contains articles about Java 9 core features
- [Iterate Through a Range of Dates in Java](https://www.baeldung.com/java-iterate-date-range)
- [Initialize a HashMap in Java](https://www.baeldung.com/java-initialize-hashmap)
- [Immutable Set in Java](https://www.baeldung.com/java-immutable-set)
+- [Immutable ArrayList in Java](https://www.baeldung.com/java-immutable-list)
Note: also contains part of the code for the article
[How to Filter a Collection in Java](https://www.baeldung.com/java-collection-filtering).
diff --git a/core-java-modules/core-java-9/pom.xml b/core-java-modules/core-java-9/pom.xml
index 23a465caa1..a90ad0a740 100644
--- a/core-java-modules/core-java-9/pom.xml
+++ b/core-java-modules/core-java-9/pom.xml
@@ -37,6 +37,11 @@
${junit.platform.version}
test
+
+ org.apache.commons
+ commons-collections4
+ ${commons-collections4.version}
+
@@ -69,6 +74,7 @@
1.9
1.9
25.1-jre
+ 4.1
diff --git a/core-java-modules/core-java-9/src/test/java/com/baeldung/java9/list/immutable/ImmutableArrayListUnitTest.java b/core-java-modules/core-java-9/src/test/java/com/baeldung/java9/list/immutable/ImmutableArrayListUnitTest.java
new file mode 100644
index 0000000000..f148b66dad
--- /dev/null
+++ b/core-java-modules/core-java-9/src/test/java/com/baeldung/java9/list/immutable/ImmutableArrayListUnitTest.java
@@ -0,0 +1,48 @@
+package com.baeldung.java9.list.immutable;
+
+import com.google.common.collect.ImmutableList;
+import org.apache.commons.collections4.ListUtils;
+import org.junit.Test;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+public class ImmutableArrayListUnitTest {
+
+ @Test(expected = UnsupportedOperationException.class)
+ public final void givenUsingTheJdk_whenUnmodifiableListIsCreated_thenNotModifiable() {
+ final List list = new ArrayList<>(Arrays.asList("one", "two", "three"));
+ final List unmodifiableList = Collections.unmodifiableList(list);
+ unmodifiableList.add("four");
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public final void givenUsingTheJava9_whenUnmodifiableListIsCreated_thenNotModifiable() {
+ final List list = new ArrayList<>(Arrays.asList("one", "two", "three"));
+ final List unmodifiableList = List.of(list.toArray(new String[]{}));
+ unmodifiableList.add("four");
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public final void givenUsingGuava_whenUnmodifiableListIsCreated_thenNotModifiable() {
+ final List list = new ArrayList<>(Arrays.asList("one", "two", "three"));
+ final List unmodifiableList = ImmutableList.copyOf(list);
+ unmodifiableList.add("four");
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public final void givenUsingGuavaBuilder_whenUnmodifiableListIsCreated_thenNoLongerModifiable() {
+ final List list = new ArrayList<>(Arrays.asList("one", "two", "three"));
+ final ImmutableList unmodifiableList = ImmutableList.builder().addAll(list).build();
+ unmodifiableList.add("four");
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public final void givenUsingCommonsCollections_whenUnmodifiableListIsCreated_thenNotModifiable() {
+ final List list = new ArrayList<>(Arrays.asList("one", "two", "three"));
+ final List unmodifiableList = ListUtils.unmodifiableList(list);
+ unmodifiableList.add("four");
+ }
+}
diff --git a/core-java-modules/core-java-collections-array-list/README.md b/core-java-modules/core-java-collections-array-list/README.md
index 302ea82130..3637f835cf 100644
--- a/core-java-modules/core-java-collections-array-list/README.md
+++ b/core-java-modules/core-java-collections-array-list/README.md
@@ -3,9 +3,8 @@
This module contains articles about the Java ArrayList collection
### Relevant Articles:
-- [Immutable ArrayList in Java](http://www.baeldung.com/java-immutable-list)
-- [Guide to the Java ArrayList](http://www.baeldung.com/java-arraylist)
-- [Add Multiple Items to an Java ArrayList](http://www.baeldung.com/java-add-items-array-list)
+- [Guide to the Java ArrayList](https://www.baeldung.com/java-arraylist)
+- [Add Multiple Items to an Java ArrayList](https://www.baeldung.com/java-add-items-array-list)
- [ClassCastException: Arrays$ArrayList cannot be cast to ArrayList](https://www.baeldung.com/java-classcastexception-arrays-arraylist)
- [Multi Dimensional ArrayList in Java](https://www.baeldung.com/java-multi-dimensional-arraylist)
- [Removing an Element From an ArrayList](https://www.baeldung.com/java-arraylist-remove-element)
diff --git a/core-java-modules/core-java-collections-array-list/src/test/java/com/baeldung/collections/CoreJavaCollectionsUnitTest.java b/core-java-modules/core-java-collections-array-list/src/test/java/com/baeldung/collections/CoreJavaCollectionsUnitTest.java
index 019a569a65..5fd0e605dd 100644
--- a/core-java-modules/core-java-collections-array-list/src/test/java/com/baeldung/collections/CoreJavaCollectionsUnitTest.java
+++ b/core-java-modules/core-java-collections-array-list/src/test/java/com/baeldung/collections/CoreJavaCollectionsUnitTest.java
@@ -15,42 +15,11 @@ public class CoreJavaCollectionsUnitTest {
private static final Logger LOG = LoggerFactory.getLogger(CoreJavaCollectionsUnitTest.class);
-
- // tests -
-
@Test
public final void givenUsingTheJdk_whenArrayListIsSynchronized_thenCorrect() {
- final List list = new ArrayList(Arrays.asList("one", "two", "three"));
+ final List list = new ArrayList<>(Arrays.asList("one", "two", "three"));
final List synchronizedList = Collections.synchronizedList(list);
LOG.debug("Synchronized List is: " + synchronizedList);
}
- @Test(expected = UnsupportedOperationException.class)
- public final void givenUsingTheJdk_whenUnmodifiableListIsCreatedFromOriginal_thenNoLongerModifiable() {
- final List list = new ArrayList(Arrays.asList("one", "two", "three"));
- final List unmodifiableList = Collections.unmodifiableList(list);
- unmodifiableList.add("four");
- }
-
- @Test(expected = UnsupportedOperationException.class)
- public final void givenUsingGuava_whenUnmodifiableListIsCreatedFromOriginal_thenNoLongerModifiable() {
- final List list = new ArrayList(Arrays.asList("one", "two", "three"));
- final List unmodifiableList = ImmutableList.copyOf(list);
- unmodifiableList.add("four");
- }
-
- @Test(expected = UnsupportedOperationException.class)
- public final void givenUsingGuavaBuilder_whenUnmodifiableListIsCreatedFromOriginal_thenNoLongerModifiable() {
- final List list = new ArrayList(Arrays.asList("one", "two", "three"));
- final ImmutableList unmodifiableList = ImmutableList.builder().addAll(list).build();
- unmodifiableList.add("four");
- }
-
- @Test(expected = UnsupportedOperationException.class)
- public final void givenUsingCommonsCollections_whenUnmodifiableListIsCreatedFromOriginal_thenNoLongerModifiable() {
- final List list = new ArrayList(Arrays.asList("one", "two", "three"));
- final List unmodifiableList = ListUtils.unmodifiableList(list);
- unmodifiableList.add("four");
- }
-
}