Skip to content

Commit db70d23

Browse files
authored
BAEL-3476: Add Java 9 example to Immutable ArrayList in Java (eugenp#8636)
1 parent 5786db3 commit db70d23

5 files changed

Lines changed: 58 additions & 35 deletions

File tree

core-java-modules/core-java-9/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ This module contains articles about Java 9 core features
99
- [Iterate Through a Range of Dates in Java](https://www.baeldung.com/java-iterate-date-range)
1010
- [Initialize a HashMap in Java](https://www.baeldung.com/java-initialize-hashmap)
1111
- [Immutable Set in Java](https://www.baeldung.com/java-immutable-set)
12+
- [Immutable ArrayList in Java](https://www.baeldung.com/java-immutable-list)
1213

1314
Note: also contains part of the code for the article
1415
[How to Filter a Collection in Java](https://www.baeldung.com/java-collection-filtering).

core-java-modules/core-java-9/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@
3737
<version>${junit.platform.version}</version>
3838
<scope>test</scope>
3939
</dependency>
40+
<dependency>
41+
<groupId>org.apache.commons</groupId>
42+
<artifactId>commons-collections4</artifactId>
43+
<version>${commons-collections4.version}</version>
44+
</dependency>
4045
</dependencies>
4146

4247
<build>
@@ -69,6 +74,7 @@
6974
<maven.compiler.source>1.9</maven.compiler.source>
7075
<maven.compiler.target>1.9</maven.compiler.target>
7176
<guava.version>25.1-jre</guava.version>
77+
<commons-collections4.version>4.1</commons-collections4.version>
7278
</properties>
7379

7480
</project>
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package com.baeldung.java9.list.immutable;
2+
3+
import com.google.common.collect.ImmutableList;
4+
import org.apache.commons.collections4.ListUtils;
5+
import org.junit.Test;
6+
7+
import java.util.ArrayList;
8+
import java.util.Arrays;
9+
import java.util.Collections;
10+
import java.util.List;
11+
12+
public class ImmutableArrayListUnitTest {
13+
14+
@Test(expected = UnsupportedOperationException.class)
15+
public final void givenUsingTheJdk_whenUnmodifiableListIsCreated_thenNotModifiable() {
16+
final List<String> list = new ArrayList<>(Arrays.asList("one", "two", "three"));
17+
final List<String> unmodifiableList = Collections.unmodifiableList(list);
18+
unmodifiableList.add("four");
19+
}
20+
21+
@Test(expected = UnsupportedOperationException.class)
22+
public final void givenUsingTheJava9_whenUnmodifiableListIsCreated_thenNotModifiable() {
23+
final List<String> list = new ArrayList<>(Arrays.asList("one", "two", "three"));
24+
final List<String> unmodifiableList = List.of(list.toArray(new String[]{}));
25+
unmodifiableList.add("four");
26+
}
27+
28+
@Test(expected = UnsupportedOperationException.class)
29+
public final void givenUsingGuava_whenUnmodifiableListIsCreated_thenNotModifiable() {
30+
final List<String> list = new ArrayList<>(Arrays.asList("one", "two", "three"));
31+
final List<String> unmodifiableList = ImmutableList.copyOf(list);
32+
unmodifiableList.add("four");
33+
}
34+
35+
@Test(expected = UnsupportedOperationException.class)
36+
public final void givenUsingGuavaBuilder_whenUnmodifiableListIsCreated_thenNoLongerModifiable() {
37+
final List<String> list = new ArrayList<>(Arrays.asList("one", "two", "three"));
38+
final ImmutableList<String> unmodifiableList = ImmutableList.<String>builder().addAll(list).build();
39+
unmodifiableList.add("four");
40+
}
41+
42+
@Test(expected = UnsupportedOperationException.class)
43+
public final void givenUsingCommonsCollections_whenUnmodifiableListIsCreated_thenNotModifiable() {
44+
final List<String> list = new ArrayList<>(Arrays.asList("one", "two", "three"));
45+
final List<String> unmodifiableList = ListUtils.unmodifiableList(list);
46+
unmodifiableList.add("four");
47+
}
48+
}

core-java-modules/core-java-collections-array-list/README.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@
33
This module contains articles about the Java ArrayList collection
44

55
### Relevant Articles:
6-
- [Immutable ArrayList in Java](http://www.baeldung.com/java-immutable-list)
7-
- [Guide to the Java ArrayList](http://www.baeldung.com/java-arraylist)
8-
- [Add Multiple Items to an Java ArrayList](http://www.baeldung.com/java-add-items-array-list)
6+
- [Guide to the Java ArrayList](https://www.baeldung.com/java-arraylist)
7+
- [Add Multiple Items to an Java ArrayList](https://www.baeldung.com/java-add-items-array-list)
98
- [ClassCastException: Arrays$ArrayList cannot be cast to ArrayList](https://www.baeldung.com/java-classcastexception-arrays-arraylist)
109
- [Multi Dimensional ArrayList in Java](https://www.baeldung.com/java-multi-dimensional-arraylist)
1110
- [Removing an Element From an ArrayList](https://www.baeldung.com/java-arraylist-remove-element)

core-java-modules/core-java-collections-array-list/src/test/java/com/baeldung/collections/CoreJavaCollectionsUnitTest.java

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -15,42 +15,11 @@ public class CoreJavaCollectionsUnitTest {
1515

1616
private static final Logger LOG = LoggerFactory.getLogger(CoreJavaCollectionsUnitTest.class);
1717

18-
19-
// tests -
20-
2118
@Test
2219
public final void givenUsingTheJdk_whenArrayListIsSynchronized_thenCorrect() {
23-
final List<String> list = new ArrayList<String>(Arrays.asList("one", "two", "three"));
20+
final List<String> list = new ArrayList<>(Arrays.asList("one", "two", "three"));
2421
final List<String> synchronizedList = Collections.synchronizedList(list);
2522
LOG.debug("Synchronized List is: " + synchronizedList);
2623
}
2724

28-
@Test(expected = UnsupportedOperationException.class)
29-
public final void givenUsingTheJdk_whenUnmodifiableListIsCreatedFromOriginal_thenNoLongerModifiable() {
30-
final List<String> list = new ArrayList<String>(Arrays.asList("one", "two", "three"));
31-
final List<String> unmodifiableList = Collections.unmodifiableList(list);
32-
unmodifiableList.add("four");
33-
}
34-
35-
@Test(expected = UnsupportedOperationException.class)
36-
public final void givenUsingGuava_whenUnmodifiableListIsCreatedFromOriginal_thenNoLongerModifiable() {
37-
final List<String> list = new ArrayList<String>(Arrays.asList("one", "two", "three"));
38-
final List<String> unmodifiableList = ImmutableList.copyOf(list);
39-
unmodifiableList.add("four");
40-
}
41-
42-
@Test(expected = UnsupportedOperationException.class)
43-
public final void givenUsingGuavaBuilder_whenUnmodifiableListIsCreatedFromOriginal_thenNoLongerModifiable() {
44-
final List<String> list = new ArrayList<String>(Arrays.asList("one", "two", "three"));
45-
final ImmutableList<String> unmodifiableList = ImmutableList.<String>builder().addAll(list).build();
46-
unmodifiableList.add("four");
47-
}
48-
49-
@Test(expected = UnsupportedOperationException.class)
50-
public final void givenUsingCommonsCollections_whenUnmodifiableListIsCreatedFromOriginal_thenNoLongerModifiable() {
51-
final List<String> list = new ArrayList<String>(Arrays.asList("one", "two", "three"));
52-
final List<String> unmodifiableList = ListUtils.unmodifiableList(list);
53-
unmodifiableList.add("four");
54-
}
55-
5625
}

0 commit comments

Comments
 (0)