Java Collections unmodifiableSet()
Java集合类的
unmodifiableSet()方法用于获取不可修改的
语法
以下是
unmodifiableSet()方法的声明:
public static <T> Set<T> unmodifiableSet(Set<? extends T> s)
参数
参数 |
说明 |
必需/可选 |
s |
这是要返回不可修改视图的集合。 |
必需 |
返回
unmodifiableSet()方法返回指定集合的不可修改视图。
异常
不适用
示例1
import java.util.*;
public class CollectionsUnmodifiableSetExample1 {
public static void main(String[] args) {
Set<Integer> set = new TreeSet<>();
Collections.addAll(set, 1,2,3,4,5);
System.out.println("Initial Set: " + set);
Set<Integer> set2 = Collections.unmodifiableSet(set);
System.out.println("Unmodifiable Set: " + set2);
//Modifying the original set
set.add(15);
System.out.println("Unmodifiable Set: " + set2);
}
}
输出:
Initial Set: [1, 2, 3, 4, 5]
Unmodifiable Set: [1, 2, 3, 4, 5]
Unmodifiable Set: [1, 2, 3, 4, 5, 15]
示例2
import java.util.*;
public class CollectionsUnmodifiableSetExample2 {
public static void main(String[] args) {
Set<String> set = new TreeSet<>();
Collections.addAll(set, "Google", "Facebook", "Instagram");
System.out.println("Initial Set: " + set);
Set<String> set2 = Collections.unmodifiableSet(set);
System.out.println("Unmodifiable Set: " + set2);
//Modifying the original set
set.add("Twitter");
System.out.println("Unmodifiable Set: " + set2);
}
}
输出:
Initial Set: [Facebook, Google, Instagram]
Unmodifiable Set: [Facebook, Google, Instagram]
Unmodifiable Set: [Facebook, Google, Instagram, Twitter]
示例3
import java.util.*;
public class CollectionsUnmodifiableSetExample3 {
public static void main(String[] args) {
Set<Integer> set = new TreeSet<>();
Collections.addAll(set, 11, 13, 17);
System.out.println("Original Set: " + set);
Set<Integer> set2 = Collections.unmodifiableSet(set);
set2.add(19);
}
}
输出:
Original Set: [11, 13, 17]
Exception in thread "main" java.lang.UnsupportedOperationException
at java.base/java.util.Collections$UnmodifiableCollection.add(Collections.java:1056)
at myPackage.CollectionsUnmodifiableSetExample3.main(CollectionsUnmodifiableSetExample3.java:9)