如何在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)

更新于:2020年2月21日

166 次浏览

开启您的职业生涯

通过完成课程获得认证

开始
广告