EnumSet是一个枚举类型的集合类,他和一般的Set集合不同,它的特点是速度非常快,为什么速度很快呢?因为每次add的时候,每个枚举值只占一个长整型的一位。
常见的一些EnumSet操作
package item36;import java.util.EnumSet;/*** @author: qujundong* @date: 2020/12/5 下午9:44* @description:*/public class Text {private enum Style{BOLD, ITALIC, UNDERLINE, STRIKETHROUGH}public static void main(String[] args) {//创建空的EnumSetEnumSet<Style> styles = EnumSet.noneOf(Style.class);System.out.println(styles);styles.add(Style.BOLD);styles.add(Style.ITALIC);System.out.println(styles);//创建一个枚举类中所有元素的EnumSetEnumSet<Style> styles1 = EnumSet.allOf(Style.class);System.out.println(styles1);//创建一个范围的EnumSetEnumSet<Style> styles2 = EnumSet.range(Style.BOLD, Style.UNDERLINE);System.out.println(styles2);//获得styles2的补集EnumSet<Style> styles3 = EnumSet.complementOf(styles2);System.out.println(styles3);//复制一下style3EnumSet<Style> styles4 = EnumSet.copyOf(styles3);System.out.println(styles4);}}
总结:EnumSet其实就是一个专门针对于枚举类的集合Set,因为底层直接安位操作,所以速度会很快,但是EnumSet目前有个缺陷,在Java9版本之前无法创建一个不可变的EnumSet。
