枚举集与映射

本文介绍了枚举集(EnumSet)的概念,它是一个高效实现的枚举类型元素集合,利用位序列来表示成员状态。同时,文章还探讨了枚举映射(EnumMap),这是一个键类型为枚举的特殊映射,通过值数组直接高效实现,并在构造时需指定键的枚举类型。EnumMap的操作类似于普通Map。
摘要由CSDN通过智能技术生成

一.什么是枚举集

  • EnumSet是一个枚举类型元素集的高效实现。由于枚举集只有有限个实例,所以EnumSet内部用位序列实现。如果对应的值在集中,则相应的位被置为1。
  • EnumSet类没有公共的构造器。可以使用静态工厂方法构造这个集
public enum Weekday {
    MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY
}
public static void main(String[] args) {
		//创建一个包含指定所有元素的枚举集元素类型
        EnumSet<Weekday> always = EnumSet.allOf(Weekday.class);
        //System.out.println(always);
        //创建具有指定元素类型的空枚举集
        EnumSet<Weekday> never = EnumSet.noneOf(Weekday.class);
        //System.out.println(never);
        //创建一个最初包含所有元素的枚举集由两个指定端点定义的范围。 返回的集合将包含端点本身
        EnumSet<Weekday> range = EnumSet.range(Weekday.MONDAY, Weekday.FRIDAY);
        //System.out.println(range);
        //创建最初包含指定元素的枚举集。
        EnumSet<Weekday> mwf = EnumSet.of(Weekday.MONDAY, Weekday.WEDNESDAY, Weekday.FRIDAY);
        System.out.println(mwf);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值