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

672 阅读2分钟

「这是我参与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枚举类的一些用法介绍和实例展示,如有不正之处,欢迎留言评论。