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

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

EnumSet

  1. EnumSet是一个专为枚举设计的集合类 ,EnumSet中所有值都必须是指定枚举类型的枚举值,该枚举类型在创建EnumSet时显式或隐性的指定。EnumSet的集合元素也是有序的,EnumSet以枚举值在Enum类内的定义顺序来决定集合元素的排序。
  2. __EnumSet在内部以位向量的形式存储__,这种存储形式非常紧凑、高效,因此EnumSet对象占用内存很小,而且运行效率很好。尤其是当进行批量操作(如调用containsAll和retainAll方法)时,如其参数也是EnumSet集合,则该批量操作的执行速度也非常快。
  3. __EnumSet集合不容许加入null元素__。如果试图插入null元素,EnumSet将会抛出NullPointerException异常。
  4. EnumSet类没有暴露任何构造器来创建该类的实例,程序应该通过它提供的静态方法来创建EnumSet对象。

相关操作

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

Java知识点总结(Java容器-EnumSet)相关推荐

  1. 给Java新手的一些建议——Java知识点归纳(Java基础部分)

    写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给 ...

  2. java 解析tgw_给Java新手的一些建议——Java知识点归纳(Java基础部分)

    1. JVM相关(包括了各个版本的特性) 对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可.不过对于一个有着3年以上Java经验的资深开发者来说,不 ...

  3. Java知识点总结(Java容器-ArrayList)

    Java知识点总结(Java容器-ArrayList) @(Java知识点总结)[Java, Java容器, JavaCollection, JavaList] ArrayList 底层实现是数组,访 ...

  4. java webservice接口开发_给Java新手的一些建议----Java知识点归纳(J2EE and Web 部分)

    J2EE(Java2 Enterprise Edition) 刚出现时一般会用于开发企业内部的应用系统,特别是web应用,所以渐渐,有些人就会把J2EE和web模式画上了等号.但是其实 J2EE 里面 ...

  5. 2022 Java 知识点总结

    2022 Java知识点总结 Java Code 类加载 类加载机制 双亲委派机制 类的初始化 反射 反射的实现方式和原理 获取反射中的 Class 对象 获取构造函数 获取属性 获取方法 获取Cla ...

  6. Java知识点总结(JavaIO-合并流类)

    Java知识点总结(JavaIO- 合并流类 ) @(Java知识点总结)[Java, JavaIO] [toc] 合并流的主要功能是将两文件的内容合并成一个文件 public class Demo1 ...

  7. Java知识点总结(JavaIO- System类对IO的支持与Scanner类 )

    Java知识点总结(JavaIO- System类对IO的支持与Scanner类 ) @(Java知识点总结)[Java, JavaIO] [toc] System类 public class Dem ...

  8. Java知识点总结(JDBC-封装JDBC)

    Java知识点总结(JDBC-封装JDBC) @(Java知识点总结)[Java, JDBC] 封装JDBC src目录下新建一个db.properties文件,用于封装数据库连接信息 把获取数据库连 ...

  9. Java知识点总结(注解-内置注解)

    Java知识点总结(注解-内置注解) @(Java知识点总结)[Java, 注解] @Override 定义在java.lang.Override 中,此注释只适用于修饰方法,表示一个方法声明打算重写 ...

最新文章

  1. React-项目-引入外部的样式(14)
  2. Typesetting Engine_ Presto
  3. Xshell实现Windows上传文件到Linux主机
  4. 21世纪最需要的的七种人才 -李开复
  5. ubuntu12.04 启动n卡独显方法
  6. JSP中页面向Action传递参数的几种方式
  7. python中的items方法_Python 字典的items()方法和iteritems()方法有什么不同?【面试题详解】...
  8. NET问答: 如何集中化统一验证 Authorization
  9. avs 中国音视频标准DRA 中音频标准及应用
  10. java标识符定义_Java标识符命名规范
  11. nginx服务器设置url的优雅链接
  12. Http请求报文解析
  13. Dubbo错误No provider available for the service
  14. UnicodeDecodeError: ‘gb2312‘ codec can‘t decode byte 0xe9 in position 5632: illegal multibyte sequen
  15. Window10 磁盘如何分区(压缩卷操作)
  16. 【计算机系统结构】Micro-operation微操作
  17. DETR3D 多2d图片3D检测框架
  18. Python—re正则表达式
  19. 开源的兰空图床LskyPro
  20. java web中的导出excel_JAVA语言之怎么在JavaWeb中导出Excel

热门文章

  1. C语言main函数、return、exit函数
  2. MyEclipse 快捷键1(CTRL)
  3. 如何正确使用SqlConnection
  4. 艾伟_转载:.NET内存管理、垃圾回收
  5. 移植uboot第七步:支持DM9000
  6. php https server_使用https,$_SERVER['HTTPS']却不等于on?
  7. 面试中经常出现的算法1(整理)
  8. jmeter插件 --PerfMon Metrics Collector监控工具的使用
  9. BZOJ 4665: 小w的喜糖
  10. 解决Android中No resource found that matches android:TextAppearance.Material.Widget.Button.Inverse问题...