首页 >Java >java教程 >Java 中的枚举集

Java 中的枚举集

WBOY
WBOY原创
2024-08-30 15:15:44629浏览

枚举集是集合接口的实现,它扩展了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 方法

  • 静态 > 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