Java集合学习(三)——EnumSet枚举类

「这是我参与11月更文挑战的第23天,活动详情查看:2021最后一次更文挑战

前言

 大家好,我是程序猿小白 GW_gw,很高兴能和大家一起学习进步。
复制代码

关于Java的集合体系我们已经了解了,接下来我们就开始具体类的学习。

以下内容部分来自于网络,如有侵权,请联系我删除,本文仅用于学习交流,不用作任何商业用途。

摘要

 本文主要介绍Java集合的EnumSet枚举类
复制代码

1.1 EnumSet类

EnumSet是一个为枚举类型专用的抽象集合类。在EnumSet不允许加入null元素。EnumSet的集合是有序的,元素顺序和实例化EnumSet集合时的枚举类的元素定义顺序一致。

EnumSet在内部以位向量的形式存储,这种存储表现形式非常紧凑且高效,因此此类的空间和时间性能很好。

1.1.1 获得EnumSet类的对象

EnumSet类是一个抽象类,不能直接new一个对象,但是可以使用EnumSet类的静态方法来获得EnumSet类的实例对象。

方法 描述
static EnumSet allOf(Class elementType) 创建一个包含指定元素类型的所有元素的Enumset。
static EnumSet complementOf(EnumSet s) 创建一个其元素类型与指定Enumset 相同元素类型的Enumset,包含此枚举类剩余的枚举元素。(即两个EnumSet合起来包含的枚举类的所有元素。)
static EnumSet copyOf(EnumSets) 创建一个其元素类型与指定枚举 set 相同的枚举 set,相当于一个副本。
static EnumSet copyOf(Collection c) 创建一个从指定 collection 初始化的Enumset。
static EnumSet noneOf(Class elementType) 创建一个具有指定元素类型的空枚举 set。
static EnumSet of(E first, E... rest) 创建一个最初包含指定元素的枚举 set。从first到rest,可以是一个或多个。
static EnumSet range(E from, E to) 创建一个最初包含由两个指定端点所定义范围内的所有元素的枚举 set。

实例展示:

enum WEEKDAY{
    MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY
}
/**
 * @author Poison
 */
public class EnumSetClass {
    public static void main(String[] args) {
​
        EnumSet enumSet = EnumSet.allOf(WEEKDAY.class);
        //此集合包含枚举类中得到所有元素
        System.out.println(enumSet);
        EnumSet enumSet1 = EnumSet.noneOf(WEEKDAY.class);
        System.out.println("=================================");
        //此时该枚举集合为空,手动添加元素
        enumSet1.add(WEEKDAY.MONDAY);
        System.out.println(enumSet1);
        //此集合包含MONDAY枚举元素
        EnumSet enumSet2 = EnumSet.of(WEEKDAY.MONDAY);
        System.out.println("=================================");
        System.out.println(enumSet2);
        //此集合包含除了enumSet1中的其他的WEEKDAY中的枚举元素
        EnumSet enumSet3 = EnumSet.complementOf(enumSet1);
        System.out.println("=================================");
        System.out.println(enumSet3);
        //此集合包含MONDAY到FRIDAY的枚举元素
        EnumSet enumSet4 = EnumSet.range(WEEKDAY.MONDAY,WEEKDAY.FRIDAY);
        System.out.println("=================================");
        System.out.println(enumSet4);
​
​
​
    }
}
复制代码

image-20211125230233263

小结

以上就是关于EnumSet枚举类的一些用法介绍和实例展示,如有不正之处,欢迎留言评论。

Guess you like

Origin juejin.im/post/7034524243819757599