如何在Java 9中创建一个不可修改的Set?
不可变的静态工厂方法**Set.of()** 提供了一种方便的方法来在Java 9中创建**不可修改的集合**。
使用**Set.of()**方法创建的集合实例具有以下特性。
- 工厂方法返回的集合通常是**不可变的**。这意味着不能向集合中**添加**、**删除**或**替换**元素。对集合调用任何**修改器**方法都会导致**UnsupportedOperationException**异常。
- 如果集合的包含元素是**可变的**,则可能导致集合的内容看起来发生了变化。
- 可以使用不允许**空**元素的静态工厂方法创建**不可变的集合**。如果尝试使用空元素创建,则会抛出**NullPointerException**异常。
- 在创建不可变集合时,它会拒绝**重复的元素**。传递给静态工厂方法的重复元素会导致**IllegalArgumentException**异常。
- 集合元素的迭代顺序是**未指定的**,并且可能会发生变化。
语法
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)
广告