<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Java `EnumSet`示例 > 原文: [https://javatutorial.net/java-enumset-example](https://javatutorial.net/java-enumset-example) Java `EnumSet`類實現[`Set`](https://docs.oracle.com/javase/7/docs/api/java/util/Set.html)并將其與枚舉類型一起使用。`EnumSet`(顧名思義)只能包含枚舉值,并且所有值都屬于同一個枚舉。 此外,`EnumSet`不允許使用空值,這意味著它會拋出`NullPointerException`嘗試添加空值。 它不是線程安全的,這意味著,如果需要,我們需要在外部進行同步。 ![java-featured-image](https://img.kancloud.cn/05/3e/053ee0bb59842d92359246c98f815e0c_780x330.jpg) ## 繼承圖 ![Enum Set inheritance Diagram](https://img.kancloud.cn/2a/5a/2a5af840af5bed3d7493235f7bcc3a23_784x620.jpg) 枚舉集 ## 為什么使用`EnumSet` 每當我們必須存儲枚舉值時,`EnumSet`應該始終是最佳的`Set`實現。 所有基本操作都以固定的`time(1)`復雜度執行,這非常快。 這是由于`EnumSet`類中的所有方法都是使用算術按位運算(`<<`,`>>`,`&`等)實現的。 總而言之,`EnumSet`非常有效,因為它使用較少的內存并且速度也很快。 ## `EnumSet`中的方法 1. `EnumSet<E> close()`:返回當前集合的副本。 2. `static <E extends Enum<E>> EnumSet<E> allOf(Class<E> elementType)`:創建一個枚舉集,該枚舉集包含該枚舉中的所有元素 指定的元素類型。 3. `static <E extends Enum<E>> EnumSet<E> complementOf(EnumSet<E> s)`:創建與指定元素類型相同的枚舉集 枚舉集合,最初包含此類型的所有元素,這些元素不包含在指定集合中。 4. `static <E extends Enum<E>> EnumSet<E> copyOf(Collection<E> c)`:創建一個從指定集合初始化的集合。 5. `static <E extends Enum<E>> EnumSet<E> copyOf(EnumSet<E> s)`:創建一個與指定元素類型相同的枚舉集,包含相同的元素(如果有)。 6. `static <E extends Enum<E>> EnumSet<E> of(E e)`:創建一個包含指定元素的枚舉集。 7. `atic <E extends Enum<E>> EnumSet<E> range(E from, E to)`:創建一個枚舉集,該枚舉集包含在由兩個參數指定的范圍內的所有元素。 **從類[`java.util.AbstractSet`](https://docs.oracle.com/javase/7/docs/api/java/util/AbstractSet.html)繼承的方法**: [`equals`](https://docs.oracle.com/javase/7/docs/api/java/util/AbstractSet.html#equals(java.lang.Object)), [`hashCode`](https://docs.oracle.com/javase/7/docs/api/java/util/AbstractSet.html#hashCode()) , [`removeAll`](https://docs.oracle.com/javase/7/docs/api/java/util/AbstractSet.html#removeAll(java.util.Collection)) **從類[`java.util.AbstractCollection`](https://docs.oracle.com/javase/7/docs/api/java/util/AbstractCollection.html "class in java.util")繼承的方法**: [`add`](https://docs.oracle.com/javase/7/docs/api/java/util/AbstractCollection.html#add(E)), [`addAll`](https://docs.oracle.com/javase/7/docs/api/java/util/AbstractCollection.html#addAll(java.util.Collection)) ,[`clear`](https://docs.oracle.com/javase/7/docs/api/java/util/AbstractCollection.html#clear()),[`include`](https://docs.oracle.com/javase/7/docs/api/java/util/AbstractCollection.html#contains(java.lang.Object)), [`containsAll`](https://docs.oracle.com/javase/7/docs/api/java/util/AbstractCollection.html#containsAll(java.util.Collection)) , [`isEmpty`](https://docs.oracle.com/javase/7/docs/api/java/util/AbstractCollection.html#isEmpty()) ,[`iterator`](https://docs.oracle.com/javase/7/docs/api/java/util/AbstractCollection.html#iterator()),[`remove`](https://docs.oracle.com/javase/7/docs/api/java/util/AbstractCollection.html#remove(java.lang.Object)), [`keepAll`](https://docs.oracle.com/javase/7/docs/api/java/util/AbstractCollection.html#retainAll(java.util.Collection)) ,[`size`](https://docs.oracle.com/javase/7/docs/api/java/util/AbstractCollection.html#size()), [`toArray`](https://docs.oracle.com/javase/7/docs/api/java/util/AbstractCollection.html#toArray()) , [`toArray(T[])`](https://docs.oracle.com/javase/7/docs/api/java/util/AbstractCollection.html#toArray(T[])) , [`toString`](https://docs.oracle.com/javase/7/docs/api/java/util/AbstractCollection.html#toString()) **從類[`java.lang.Object`](https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html "class in java.lang")繼承的方法**: [`finalize`](https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#finalize()), [`getClass`](https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#getClass()) ,[`notify`](https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#notify()), [`notifyAll`](https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#notifyAll()) ,[`wait`](https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#wait()),[`wait(long)`](https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#wait(long))。 ### 從接口[`java.util.Set`](https://docs.oracle.com/javase/7/docs/api/java/util/Set.html "interface in java.util")繼承的方法: [`add`](https://docs.oracle.com/javase/7/docs/api/java/util/Set.html#add(E)), [`addAll`](https://docs.oracle.com/javase/7/docs/api/java/util/Set.html#addAll(java.util.Collection)) ,[`clear`](https://docs.oracle.com/javase/7/docs/api/java/util/Set.html#clear()),[`contains`](https://docs.oracle.com/javase/7/docs/api/java/util/Set.html#contains(java.lang.Object)), [`containsAll`](https://docs.oracle.com/javase/7/docs/api/java/util/Set.html#containsAll(java.util.Collection)) , [`isEmpty`](https://docs.oracle.com/javase/7/docs/api/java/util/Set.html#isEmpty()) ,[`iterator`](https://docs.oracle.com/javase/7/docs/api/java/util/Set.html#iterator()),[`remove`](https://docs.oracle.com/javase/7/docs/api/java/util/Set.html#remove(java.lang.Object)), [`retainAll`](https://docs.oracle.com/javase/7/docs/api/java/util/Set.html#retainAll(java.util.Collection)) ,[`size`](https://docs.oracle.com/javase/7/docs/api/java/util/Set.html#size()), [`toArray`](https://docs.oracle.com/javase/7/docs/api/java/util/Set.html#toArray()) , [`toArray(T[])`](https://docs.oracle.com/javase/7/docs/api/java/util/Set.html#toArray(T[])) 有關`EnumSet`主要方法的更多信息,請隨時訪問原始 [Oracle 文檔](https://docs.oracle.com/javase/7/docs/api/java/util/EnumSet.html)。 ```java import java.util.EnumSet; enum Student { NAME, AGE, MAJOR, YEAR }; public class EnumSetExample { public static void main(String[] args) { // initializing set EnumSet<Student> set1, set2, set3; // populating the sets using of(E e) enumSet1 = EnumSet.of(Student.NAME, Student.MAJOR, Student.YEAR); // will get all of the properties that have not been initialized to the // specified set (if any) enumSet2 = EnumSet.complementOf(enumSet1); // will get all of the properties that are present in the enumset enumSet3 = EnumSet.allOf(Student.class); // will get from age to year and everything in between the properties of the // enumset class enumSet4 = EnumSet.range(Student.AGE, Student.YEAR); System.out.println("Set 1: " + enumSet1); System.out.println("Set 2: " + enumSet2); System.out.println("Set 3: " + enumSet3); System.out.println("Set 4: " + enumSet4); } } ``` **輸出**: ```java Set 1: {NAME, MAJOR, YEAR} Set 2: {AGE} Set 3: {NAME, AGE, MAJOR, YEAR} Set 4: {AGE, MAJOR, YEAR} ```
                  <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>

                              哎呀哎呀视频在线观看