如何在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 次瀏覽

開啟您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.