Home >Java >javaTutorial >How do we create an immutable Set in Java 9?

How do we create an immutable Set in Java 9?

王林
王林forward
2023-08-20 17:57:281457browse

在Java 9中,我们如何创建一个不可修改的Set?

Immutable static factory methodSet.of()Can provide a convenient way to create immutable collections in Java 9.

The set instance created using the Set.of() method has the following characteristics.

  • Collections returned by factory methods are usually immutable. This means that cannot add , remove or replace elements to the collection. Calling any modifier method on a collection will throw an UnsupportedOperationException.
  • If the elements in the collection are mutable, it may cause the contents of the collection to appear to change.
  • You can create immutable collections using static factory methods that do not allow null elements. If you try to create a collection with null elements, NullPointerException will be thrown.
  • When creating an immutable collection, duplicate elements will be rejected. Passing duplicate elements to a static factory method results in an IllegalArgumentException.
  • The iteration order of collection elements is unspecified and may change. The Chinese translation of

Grammar

<strong>Set.of(E... elements)</strong>

Example

is:

Example

import java.util.Set;
public class SetOfMethodTest {
   public static void main(String args[]) {
      Set<String> names = <strong>Set.of</strong>("Adithya", "Bhavish", "Chaitanya", "Jai");
      System.out.println("Names - " + names);
      names.add("Raja");       <strong>// throws UnsupportedOperationException</strong>
   }
}

Output

<strong>Names - [Bhavish, Adithya, Jai, Chaitanya]
</strong><strong>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)</strong>

The above is the detailed content of How do we create an immutable Set in Java 9?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete