枚举集与映射

一.什么是枚举集

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

枚举集与映射_第1张图片

二.枚举映射

  • EnumMap是一个键类型为枚举类型的映射。它可以直接且高效地用一个值数组实现。在使用时,需要在构造器中指定键的类型:
EnumMap personInCharge = new EnumMap<>(Weekday.class);
  • 其它操作同普通Map映射。

你可能感兴趣的:(Java基础知识)