我们如何在Java 9中创建不可修改的Set?
不变的静态工厂方法Set.of()可以提供一种方便的方法来在Java9中创建不可修改的 集 。
通过使用Set.of()方法创建的集合的实例具有以下特征。
通常,通过工厂方法返回的集合是不可变的。这意味着不能从Set中添加,删除或替换 元素。在Set上调用任何mutator 方法都会导致UnsupportedOperationException。
如果Set包含的元素是可变的,则可能导致Set的内容似乎发生变化。
一个不可变 集 可以使用静态工厂方法不允许创建空 的元素。如果我们尝试使用null元素创建,则会抛出NullPointerException。
在创建不可变的集时,它将拒绝重复的 元素 。传递给静态工厂方法的重复元素将导致IllegalArgumentException。
set元素的迭代顺序不确定, 并且可能会发生变化。
语法
Set.of(E... elements)
示例
import java.util.Set; public class SetOfMethodTest { public static void main(String args[]) { Set<String> names = Set.of("Adithya", "Bhavish", "Chaitanya", "Jai"); System.out.println("Names - " + names); names.add("Raja"); // throws UnsupportedOperationException } }
输出结果
Names - [Bhavish, Adithya, Jai, Chaitanya]Exception in thread "main" java.lang.UnsupportedOperationException at java.base/java.util.ImmutableCollections.uoe(Unknown Source) at java.base/java.util.ImmutableCollections$AbstractImmutableSet.add(Unknown Source) at SetOfMethodTest.main(SetOfMethodTest.java:8)