Skip to content

Commit 829b11e

Browse files
authored
Merge pull request eugenp#6008 from MherBaghinyan/BAEL-2482
immutable sets
2 parents bbb6c93 + a89983a commit 829b11e

File tree

2 files changed

+56
-0
lines changed

2 files changed

+56
-0
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package com.baeldung.java9.set;
2+
3+
import com.google.common.collect.ImmutableSet;
4+
5+
import java.util.Collections;
6+
import java.util.HashSet;
7+
import java.util.Set;
8+
9+
public class UnmodifiableSet {
10+
11+
public static void main(String[] args) {
12+
13+
Set<String> set = new HashSet<>();
14+
set.add("Canada");
15+
set.add("USA");
16+
17+
coreJDK(set);
18+
guavaOf();
19+
copyOf(set);
20+
java9Of();
21+
}
22+
23+
private static void java9Of() {
24+
Set<String> immutable = Set.of("Canada", "USA");
25+
System.out.println(immutable);
26+
}
27+
28+
private static void guavaOf() {
29+
Set<String> immutable = ImmutableSet.of("Canada", "USA");
30+
System.out.println(immutable);
31+
}
32+
33+
private static void copyOf(Set<String> set) {
34+
Set<String> immutable = ImmutableSet.copyOf(set);
35+
set.add("Costa Rica");
36+
System.out.println(immutable);
37+
}
38+
39+
private static void coreJDK(Set<String> set) {
40+
Set<String> unmodifiableSet = Collections.unmodifiableSet(set);
41+
set.add("Costa Rica");
42+
System.out.println(unmodifiableSet);
43+
}
44+
}

core-java-9/src/test/java/com/baeldung/java9/SetExamplesUnitTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.baeldung.java9;
22

3+
import java.util.Collections;
4+
import java.util.HashSet;
35
import java.util.Set;
46
import org.junit.Test;
57

@@ -23,4 +25,14 @@ public void testArrayToSet() {
2325
Set<Integer> intSet = Set.of(intArray);
2426
assertEquals(intSet.size(), intArray.length);
2527
}
28+
29+
@Test(expected = UnsupportedOperationException.class)
30+
public void testUnmodifiableSet() {
31+
Set<String> set = new HashSet<>();
32+
set.add("Canada");
33+
set.add("USA");
34+
35+
Set<String> unmodifiableSet = Collections.unmodifiableSet(set);
36+
unmodifiableSet.add("Costa Rica");
37+
}
2638
}

0 commit comments

Comments
 (0)