首頁  >  文章  >  Java  >  Java 中的枚舉集

Java 中的枚舉集

WBOY
WBOY原創
2024-08-30 15:15:44583瀏覽

枚舉集是集合介面的實現,它擴展了java中的枚舉類型的抽象類別。 are Set 集合提供了在 java 中使用枚舉的功能。枚舉集不同步;因此它們提供了更快的元素存取。枚舉集不允許添加空元素;如果我們嘗試添加空值,則會拋出空指標異常。

文法:

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

public abstract class EnumSet<E extends Enum<E>> || This is the class decralation of enum set.
EnumSet<E extends Enum<E>> enum1, enum2, enum3, enum4; || Declare different enum.

由於枚舉集不是同步的,所以它們很掌握,但是我們可以透過使用集合類別的synchronized方法()來同步它們,下面找到synchronized的語法。

Collections.synchronizedSet(java.util.Set<T>)
Set<Enum_Type> s = Collections.synchronizedSet(EnumSet.noneOf(EnumClass.class));

Java 中的 Enumset 方法

  • static >; allOf(Class elementType): 此方法用於建立包含所有提及的元素的枚舉。
  • EnumSet; clone(): 此方法用於建立集合的副本。傳回類型為 EnumSet.
  • static >; CompleteOf(EnumSet s): 此方法用於建立方法中指定的枚舉集,該枚舉將包含集合中未包含的所有元素。
  • static >; copyOf(Collection c): 這將建立方法中指定的枚舉集的副本。但它需要集合參數。
  • static >; copyOf(EnumSet s): 這將建立一個枚舉,指定為枚舉集。這將會傳回一個 EnumSet.
  • static >; noneOf(Class elementType): 這也將建立在方法中指定的枚舉。回傳一個 EnumSet.
  • static >; of(E e): 也建立一個帶有初始元素的枚舉。傳回類型為 EnumSet.
  • static >; of(Efirst,E…rest): 建立包含元素的枚舉並傳回 EnumSet
  • static >; of(E e1, E e2): 此方法將建立一個包含上述元素的枚舉。傳回類型為 EnumSet
  • static >; of(E e1, E e2, E e3): 此方法將建立一個枚舉。方法回傳類型為EnumSet; .
  • static >; of(E e1, E e2, E e3, E e4): 此方法也會建立具有指定元素的枚舉。傳回類型為 EnumSet
  • static >; of(E e1, E e2, E e3, E e4, E e5): 此方法也建立枚舉,並指定為枚舉傳遞的元素。傳回類型為 EnumSet
  • static >; range(E from, E to): 在這個方法中我們可以指定範圍。然後它將創建一個新的枚舉。傳回類型為 EnumSet; .

注意:

  • 枚舉集實作各種類別和介面。枚舉集類別聲明:
  • 公共抽象類別 EnumSet>擴充 AbstractSet實現可複製、可序列化

透過枚舉集實現的介面:

  • 可克隆
  • 設定
  • 可序列化
  • 收藏
  • 可迭代

透過枚舉集擴展的類別如下:

  • 抽象集

Java 中枚舉集的範例

以下是枚舉集的範例:

範例#1

在下面的範例中,w 將元素加入枚舉集。

代碼:

import java.util.EnumSet;
public class EnumsetDemo {
public static void main(String[] args) {
// creating reference
EnumSet<EnumDemo> enum1;
// here we are adding elements to the enum1 which we create above.
enum1 = EnumSet.of(EnumDemo.JAVA, EnumDemo.JAVASCRIPT,
EnumDemo.C, EnumDemo.PHP, EnumDemo.GO, EnumDemo.PYTHON, EnumDemo.TYPESCRIPT);
System.out.println("Enum set 1 containing values are :: ");
System.out.println( enum1);
}
}
enum EnumDemo
{
JAVA, PYTHON, PHP, C, GO, JAVASCRIPT, TYPESCRIPT
};

輸出:

Java 中的枚舉集

範例#2

在此範例中,我們僅使用值 sf enum1 建立 enum2。下面是一個例子。

代碼:

import java.util.EnumSet;
public class EnumsetDemo {
public static void main(String[] args) {
// creating reference
EnumSet<EnumDemo> enum1;
// here we are adding elements to the enum1 which we create above.
enum1 = EnumSet.of(EnumDemo.JAVA, EnumDemo.JAVASCRIPT,
EnumDemo.C, EnumDemo.PHP, EnumDemo.GO, EnumDemo.PYTHON, EnumDemo.TYPESCRIPT);
System.out.println("Enum set 1 containing values are :: ");
System.out.println( enum1);
// adding value to another enum set using addAll method
EnumSet<EnumDemo> enum2 = EnumSet.allOf(EnumDemo.class);
System.out.println("Enum set 2 containing values are :: ");
System.out.println( enum2);
}
}
enum EnumDemo
{
JAVA, PYTHON, PHP, C, GO, JAVASCRIPT, TYPESCRIPT
};

輸出:

Java 中的枚舉集

範例#3

在此範例中,我們正在尋找 f enum1 到 enum2 的補集。

代碼:

import java.util.EnumSet;
public class EnumsetDemo {
public static void main(String[] args) {
// creating reference
EnumSet<EnumDemo> enum1;
// here we are adding elements to the enum1 which we create above.
enum1 = EnumSet.of(EnumDemo.JAVA, EnumDemo.JAVASCRIPT,
EnumDemo.C, EnumDemo.PHP, EnumDemo.GO, EnumDemo.PYTHON, EnumDemo.TYPESCRIPT);
System.out.println("Enum set 1 containing values are :: ");
System.out.println( enum1);
// finind completents of enum1 to enum2
EnumSet<EnumDemo> enum2 = EnumSet.complementOf(enum1);
System.out.println("Enum set 2 containing values are :: ");
System.out.println( enum2);
}
}
enum EnumDemo
{
JAVA, PYTHON, PHP, C, GO, JAVASCRIPT, TYPESCRIPT
};

輸出:

Java 中的枚舉集

Example #4

Specifying range to elements to be copied.

Code:

import java.util.EnumSet;
public class EnumsetDemo {
public static void main(String[] args) {
// creating reference
EnumSet<EnumDemo> enum1;
// here we are adding elements to the enum1 which we create above.
enum1 = EnumSet.of(EnumDemo.JAVA, EnumDemo.JAVASCRIPT,
EnumDemo.C, EnumDemo.PHP, EnumDemo.GO, EnumDemo.PYTHON, EnumDemo.TYPESCRIPT);
System.out.println("Enum set 1 containing values are :: ");
System.out.println( enum1);
// here we are specifing the range to another enum using enum1
EnumSet<EnumDemo> enum2 = EnumSet.range(EnumDemo.PYTHON, EnumDemo.JAVASCRIPT);
System.out.println("Enum set 2 containing values are :: ");
System.out.println( enum2);
}
}
enum EnumDemo
{
JAVA, PYTHON, PHP, C, GO, JAVASCRIPT, TYPESCRIPT
};

Output:

Java 中的枚舉集

Example #5

Making copy from existing enum.

Code:

import java.util.EnumSet;
public class EnumsetDemo {
public static void main(String[] args) {
// creating reference
EnumSet<EnumDemo> enum1;
// here we are adding elements to the enum1 which we create above.
enum1 = EnumSet.of(EnumDemo.JAVA, EnumDemo.JAVASCRIPT,
EnumDemo.C, EnumDemo.PHP, EnumDemo.GO, EnumDemo.PYTHON, EnumDemo.TYPESCRIPT);
System.out.println("Enum set 1 containing values are :: ");
System.out.println( enum1);
// here we are copying elements of enum1 to enum2.
EnumSet<EnumDemo> enum2 = EnumSet.copyOf(enum1);
System.out.println("Enum set 2 containing values are :: ");
System.out.println( enum2);
}
}
enum EnumDemo
{
JAVA, PYTHON, PHP, C, GO, JAVASCRIPT, TYPESCRIPT
};

Output:

Java 中的枚舉集

Conclusion

Java EnumSet is the implementation of the SET interface in java. They are a special type of java collection framework that provides support for enum types in java. We can also make them synchronized as these are not synchronized.

以上是Java 中的枚舉集的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn