<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Java 9 - 創建不可變`Set`的工廠方法 > 原文: [https://beginnersbook.com/2018/04/java-9-factory-methods-to-create-immutable-set/](https://beginnersbook.com/2018/04/java-9-factory-methods-to-create-immutable-set/) 在上一個教程中,我們學習了如何[使用 Java 9](https://beginnersbook.com/2018/04/java-9-factory-method-to-create-immutable-list/) 中引入的工廠方法輕松創建不可變`List`。在本指南中,我們將看到使用新引入的工廠方法來創建[不可變`Set`](https://beginnersbook.com/2013/12/hashset-class-in-java-with-example/)。 ## 1.在 Java 9 之前創建不可變`Set` 在我們討論如何使用工廠方法創建不可修改的`Set`之前,讓我們看看我們如何在 [Java 9](https://beginnersbook.com/2018/04/java-9-features-with-examples/) 之前創建不可變`Set`。 ### 1.1 在 java SE 9 之前創建空的不可變`Set` 在 Java 9 之前,我們必須使用[`Collections`](https://beginnersbook.com/java-collections-tutorials/)類的`unmodifiableSet()`方法來創建不可變的`Set`。在以下示例中,我們將創建一個空集。 ```java Set<String> emptyHashSet = new HashSet<String>(); Set<String> immutableHSet = Collections.unmodifiableSet(emptyHashSet); ``` 讓我們在 [JShell](https://beginnersbook.com/2018/04/java-9-jshell-repl/) (Java 9 中引入的新工具)中測試此代碼 ![Creating Empty Set Before Java 9](https://img.kancloud.cn/fb/69/fb698b0369867442ec2d365333a7e4e7_1024x428.jpg) ### 1.2 在 Java SE 9 之前創建非空的不可變`Set` 這就是我們在 Java 9 之前用來創建非空的不可變`Set`的方法。正如您所看到的,我們必須編寫幾行代碼來實現這一點。在 Java 9 中,我們可以在一行中編寫此代碼,我們將在下一節中看到。 ```java Set<String> hset = new HashSet<String>(); hset.add("Jon Snow"); hset.add("Khal Drogo"); hset.add("Daenerys"); Set<String> immutableSet = Collections.unmodifiableSet(hset); ``` ![Non Empty immutable Set before java 9](https://img.kancloud.cn/08/19/08197306a9b4d5a6624a08f6fcc2ab99_1024x629.jpg) ## 2\. Java 9 - 使用`Set`的靜態工廠方法創建不可變`Set` Java 9 引入了幾個版本的`of()`方法來創建不可修改的集合。 ```java static <E> Set<E> of() ``` ### 2.1 Java 9 - 創建空的不可變`Set` ```java Set<String> immutableSet = Set.of(); ``` ![Creating Empty Set in Java 9 using Factory Methods](https://img.kancloud.cn/9a/05/9a05cba9a11cb8d9a20e046d44131372_1024x313.jpg) ### 2.2 Java 9 - 創建非空的不可變`Set` 正如您所看到的,在 Java 9 中創建不可變`Set`是多么簡單。 ```java Set<String> immutableSet = Set.of("Apple", "Banana", "Orange"); ``` ![Creating Non Empty Set in Java 9 using method of()](https://img.kancloud.cn/e3/95/e3958161b1b2b4ff3e136c191cc070dc_1024x399.jpg) ## 3.什么是不可變`Set`? 1. 不可變`Set`不允許添加,刪除和更新其元素,如果我們嘗試這樣做,那么我們將得到`UnsupportedOperationException`異常。讓我們舉個例子來看看這個。 ```java jshell> Set immutableSet = Set.of("Paul", "Lora", "Steve"); immutableSet ==> [Paul, Lora, Steve] jshell> immutableSet.add("Harry") | java.lang.UnsupportedOperationException thrown: | at ImmutableCollections.uoe (ImmutableCollections.java:71) | at ImmutableCollections$AbstractImmutableSet.add (ImmutableCollections.java:281) | at (#2:1) ``` 2. 我們不能將`null`元素添加到不可變`Set`。 ```java jshell> Set immutableSet = Set.of("Paul", "Lora", "Steve"); immutableSet ==> [Lora, Steve, Paul] jshell> immutableSet.add(null) | java.lang.UnsupportedOperationException thrown: | at ImmutableCollections.uoe (ImmutableCollections.java:71) | at ImmutableCollections$AbstractImmutableSet.add (ImmutableCollections.java:281) | at (#2:1) ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看