资讯专栏INFORMATION COLUMN

Java知识点总结(Java容器-EnumSet)

kycool / 2395人阅读

摘要:知识点总结容器知识点总结容器是一个专为枚举设计的集合类,中所有值都必须是指定枚举类型的枚举值,该枚举类型在创建时显式或隐性的指定。集合不容许加入元素。

Java知识点总结(Java容器-EnumSet)

@(Java知识点总结)[Java, Java容器, JavaCollection, JavaSet]

EnumSet

EnumSet是一个专为枚举设计的集合类 ,EnumSet中所有值都必须是指定枚举类型的枚举值,该枚举类型在创建EnumSet时显式或隐性的指定。EnumSet的集合元素也是有序的,EnumSet以枚举值在Enum类内的定义顺序来决定集合元素的排序。

__EnumSet在内部以位向量的形式存储__,这种存储形式非常紧凑、高效,因此EnumSet对象占用内存很小,而且运行效率很好。尤其是当进行批量操作(如调用containsAll和retainAll方法)时,如其参数也是EnumSet集合,则该批量操作的执行速度也非常快。

__EnumSet集合不容许加入null元素__。如果试图插入null元素,EnumSet将会抛出NullPointerException异常。

EnumSet类没有暴露任何构造器来创建该类的实例,程序应该通过它提供的静态方法来创建EnumSet对象。

相关操作
        //1.0创建一个EnumSet集合,集合元素就是Season枚举类的全部枚举值
        EnumSet es = EnumSet.allOf(Season.class);
        System.out.println(es);//输出[SPRING, SUMMER, AUTUMN, WINTER]
        
        //2.0创建一个EnumSet空集合,指定其集合元素时Season类的枚举值。
        EnumSet es2 = EnumSet.noneOf(Season.class);
        System.out.println(es2);//输出[]
        //2.1手动添加两个元素
        es2.add(Season.AUTUMN);
        es2.add(Season.WINTER);
        System.out.println(es2);//输出[AUTUMN, WINTER]
        
        //3.0以指定枚举值创建EnumSet集合
        EnumSet es3 = EnumSet.of(Season.SPRING, Season.SUMMER);
        System.out.println(es3);//输出[SPRING, SUMMER]
        
        //4.0创建包含从Season.SPRING枚举值,到Season.AUTUMN枚举值范围内所有枚举值的EnumSet集合。
        EnumSet es4 = EnumSet.range(Season.SPRING, Season.AUTUMN);
        System.out.println(es4); //输出[SPRING, SUMMER, AUTUMN]
        
        //5.0新创建的EnumSet集合元素和es4集合的元素有相同类型,es5的集合元素 + es4的集合元素 = Season 的所有枚举值
        EnumSet es5 = EnumSet.complementOf(es4);
        System.out.println(es5); //输出[WINNER]
        
        //6.0复制Collection集合中所有元素来创建EnumSet集合。
        Collection c = new HashSet();
            c.add(Season.AUTUMN);
            c.add(Season.WINTER);
        EnumSet es6 = EnumSet.copyOf(c);
        System.out.println(es6); //输出[AUTUMN, WINTER]

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/69644.html

相关文章

  • Java识点总结Java容器-Set)

    摘要:知识点总结容器知识点总结容器是一种不包括重复元素的。由于接口的特殊性,所有传入集合中的元素必须不同。集合判断两个对象是否相同,是使用方法,而不是使用运算符的。只能存储,所以只会在存储的情况下使用。 Java知识点总结(Java容器-Set) @(Java知识点总结)[Java, Java容器, JavaCollection, JavaSet] Set Set是一种不包括重复元素的Col...

    dack 评论0 收藏0
  • Java 基础 | Collection 集合概览

    摘要:说到复盘基础,并不是所有的都会复盘,没那个时间更没那个必要。比如,一些基础的语法以及条件语句,极度简单。思前想后,我觉得整个计划应该从集合开始,而复盘的方式就是读源码。通常,队列不允许随机访问队列中的元素。 ​showImg(https://segmentfault.com/img/remote/1460000020029737?w=1080&h=711); 老读者都知道,我是自学转行...

    codergarden 评论0 收藏0
  • java集合-Set

    摘要:集合判断两个元素的标准是两个对象通过方法比较相等,并且两个对象的方法返回值也相等。的集合元素也是有序的,以枚举值在类内的定义顺序来决定集合元素的顺序。是所有实现类中性能最好的,但它只能保存同一个枚举类的枚举值作为集合元素。 Set集合通常不能记住元素的添加顺序。Set不允许包含重复的元素。 Set集合不允许包含相同的元素,如果试图把两个相同的元素加入同一个Set集合中,则添加操作...

    xavier 评论0 收藏0
  • Java 集合 Set

    摘要:当复制集合中的所有元素来创建新的集合时,要求集合中的所有元素必须是同一个枚举类的枚举值各实现类的性能分析的性能总比好,特别是最常用的添加查询元素等操作。因为需要额外的红黑树算法来维护集合元素的次序。在创建时进行,以防对集合的意外非同步访问 HashSet 大多时候使用Set集合时就是使用HashSet实现类。HashSet按Hash算法来存储集合中的元素,因此具有很好的存取和查找性能 ...

    verano 评论0 收藏0
  • Stream流与Lambda表达式(四) 自定义收集器

    摘要:一自定义收集器陈杨将集合转换为集合存放相同元素二自定义收集器陈杨将学生对象按照存放从中间容器数据类型转换为结果类型数据类型一致若不一致抛出类型转换异常对中间容器数据结果类型进行强制类型转换多个线程同时操作同一个容器并行多线 一、自定义SetCustomCollector收集器 package com.java.design.Stream.CustomCollector; impor...

    wind5o 评论0 收藏0

发表评论

0条评论

kycool

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<