• 37、EnumSet详解


      EnumSet类也是有顺序的,EnumSet按照枚举值在Enum类内定义的顺序决定集合元素的顺序

      EnumSet在内部已位向量的形式存储,这种存储方式非常紧凑、搞笑,因此EnumSet占用内存很小,而且运行效率很好。

      EnumSet集合不允许加入null元素

      EnumSet常用的方法:

      1)、EnumSet allOf(Class elementType):创建一个包含指定枚举类里所有枚举值得EnumSet集合

      2)、EnumSet complementOf(EnumSet s):创建一个气元素类型和指定EnumSet元素类型相同的EnumSet集合,新的ENumSet集合包含原EnumSet集合所有不包含的元素。也就是新的EnumSet集合和指定的EnumSet集合元素相加即为该枚举类里的所有元素

      3)、EnumSet copyOf(Collection c):使用一个普通集合来创建EnumSet集合,要求Collection集合里都是枚举元素,且类型都相同。否则会抛出ClassCastException异常

      4)、EnumSet copyOf(EnumSet s):创建一个与指定EnumSet具有相同元素类型、相同集合元素的EnumSet集合

      5)、EnumSet noneOf(Class elementType):创建一个元素类型为指定枚举类型的空EnumSet

      6)、EnumSet of(E first,E... rest):创建一个包含一个活多个枚举值得EnumSet集合,传人的多个枚举值必须是属于同一个枚举类

      7)、EnumSet range(E from,E to):创建一个包含从from枚举值到to枚举值范围内所有枚举值的EnumSet集合

      下面是示范:

     1 public class Test {
     2 
     3     public static void main(String[] args) {
     4         
     5         //创建一个EnumSet集合,集合元素就是Season枚举类的全部枚举值
     6         EnumSet es=EnumSet.allOf(Season.class);
     7         System.out.println(es); //输出[SPRING, SUMMER, Fall, WINTER]
     8         
     9         //创建一个EnumSet空集合,只顶其集合元素是Season类的枚举值
    10         EnumSet es2=EnumSet.noneOf(Season.class);
    11         es2.add(Season.WINTER);
    12         es2.add(Season.SPRING);
    13         System.out.println(es2); //输出[SPRING, WINTER]
    14         
    15         //以枚举值来创建EnumSet集合
    16         EnumSet es3=EnumSet.of(Season.SUMMER,Season.WINTER);
    17         System.out.println(es3); //输出[SUMMER, WINTER]
    18         
    19         //创建一个包含Season枚举值从SUMMER到WINTER的EnumSet集合
    20         EnumSet es4=EnumSet.range(Season.SUMMER, Season.WINTER);
    21         System.out.println(es4);//输出[SUMMER, Fall, WINTER]
    22         
    23         //创建一个EnumSet集合,其元素和es4集合元素类型相同, es4元素+es5元素=Sesson枚举的全部枚举值
    24         EnumSet es5=EnumSet.complementOf(es4);
    25         System.out.println(es5);//输出[SPRING]
    26     }
    27 }
    28 
    29 enum Season{
    30     SPRING,SUMMER,Fall,WINTER;
    31 }
  • 相关阅读:
    SpringCloudAlibaba学习笔记-简介
    SpringCloudAlibaba学习笔记-目录
    go语言学习笔记-目录
    go语言学习笔记-配置idea开发go编程语言并配置导入本地包
    go语言学习笔记-Windows10开发环境安装和环境变量配置
    我与阿里云的日常-QuickBI开发教程
    我与阿里云的日常-阿里云帐号注册
    消息队列 RabbitMq(6)高级特性
    消息队列 (5) RabbtMQ SpringBoot整合
    Nginx的安装和使用
  • 原文地址:https://www.cnblogs.com/caoyc/p/5539278.html
Copyright © 2020-2023  润新知