在上一篇博客文章中,我们发现了EnumMap用于带有枚举键的映射。 您可能已经观察到,还有一个专门针对枚举优化的SetEnumSet

我们再次定义一个CoffeeType枚举:

public enum CoffeeType {ESPRESSO, POUR_OVER, FRENCH_PRESS, LATTE, FLAT_WHITE
}

现在,我们可以使用EnumSet实现创建此枚举类型的集合:

Set<CoffeeType> favoriteCoffeeTypes = EnumSet.of(ESPRESSO, POUR_OVER, LATTE);assertThat(favoriteCoffeeTypes).containsOnly(ESPRESSO, POUR_OVER, LATTE);

favoriteCoffeeTypes仍然像任何Set一样起作用,也就是说,添加重复项不会更改其内容:

favoriteCoffeeTypes.add(POUR_OVER);assertThat(favoriteCoffeeTypes).containsOnly(ESPRESSO, POUR_OVER, LATTE);

有趣的旁注:如果您研究JDK,则会看到EnumSetRegularEnumSetJumboEnumSet都实现了; 枚举元素的数量决定了所使用的实现。 如果您对EnumSet实现如何高效管理感兴趣,我挑战您看看这些类。 提示:按位操作:-)

这篇帖子从我的时事通讯018中转贴了。

翻译自: https://www.javacodegeeks.com/2018/01/enumset-enum-collections.html

枚举集合的EnumSet相关推荐

  1. enumset_枚举集合的EnumSet

    enumset 在上一篇博客文章中,我们发现了EnumMap用于带有枚举键的映射. 您可能已经观察到,还有一个专门针对枚举优化的Set : EnumSet . 我们再次定义一个CoffeeType枚举 ...

  2. java 集合枚举_java枚举集合怎么用

    在java枚举中可以结合集合进行操作,这里生成了一个新的类EnumSet.除此之外还有一个EnumMap集合需要我们掌握.下面我们就枚举集合的两种类进行说明,重点讲解EnumSet类的方法.代码及实例 ...

  3. Java集合之EnumSet

    转载自  Java集合之EnumSet EnumSet EnumSet 是一个专为枚举设计的集合类,EnumSet中的所有元素都必须是指定枚举类型的枚举值,该枚举类型在创建EnumSet时显式或隐式地 ...

  4. java枚举类型及枚举集合

    文章目录 一.枚举类型 二.switch 操作 三.自定义枚举类 四.相关枚举类 4.1 EnumMap 枚举型映射/字典 4.2 EnumSet 枚举集合 一.枚举类型 /*** @author z ...

  5. 【Java 枚举 集合】枚举类Enum、映射EnumMap、集EnumSet

    枚举Enum.映射EnumMap.集EnumSet 一.枚举Enum 1.概述 2.介绍 ① valueOf ② values 3.分析 ※ 模仿一个枚举类 二.枚举映射 EnumMap 1.概述 2 ...

  6. hdu 3006 枚举集合可以产生的所有并集的集合

    http://acm.hdu.edu.cn/showproblem.php?pid=3006 刚买的CHERRY键盘 手感真好 可惜不习惯 写代码老是打错,一个题写了一上午,都是各种按错键DEBUG. ...

  7. JSE6-数组枚举,集合,泛型

    1.数组 1.1 概述 数组是由相同类型的若干项数据组成的一个数据集合,数组是引用类型. 数组的声明 char charArray [] 或 char[] charArray; Java中,即使数组是 ...

  8. xjoi 1542 枚举集合 2

    题目描述: 输入n,问从 1,2,3,...,n-1,n 中选出若干个数使得他们的和为 n ,有多少种方案.每个数最多可以选3次. 输入格式: 一个数n 输出格式: 一个数表示答案 样例输入1: 2 ...

  9. 浅谈在Java开发中的枚举的作用和用法

    2019独角兽企业重金招聘Python工程师标准>>> 在枚举出现之前,如果想要表示一组特定的离散值,往往使用一些常量.例如: [java] view plain copy pack ...

最新文章

  1. (完全解决)Key already registered with the same priority: GroupSpatialSoftmax
  2. auot lisp 选择集处理_离散量的计算机处理64_1Cvs
  3. java 静态 二维数组 转化hashmap_将一个二维数组转换为 hashmap 哈希表
  4. 利用GBDT模型构造新特征具体方法
  5. Android—Window、WindowManage、屏幕绘制及刷新
  6. 人生路漫漫,还得多输出
  7. 求一个向量变换为另一个向量的矩阵_OpenGL里旋转等变换矩阵为什么是4x4的矩阵...
  8. 【图像处理】RGB图像边缘检测
  9. Flutter开发系列教程
  10. MySQL常用命令集锦
  11. jupyter notebook怎么画决策树图_状态图怎么画?图文详解快速上手UML图
  12. I didn't write blog yesterday night for some ineffable reasons
  13. VMMECH007_Thermal Stress in a Bar with Temperature Dependent Conductivity
  14. 收发EtherCAT帧——ecx_closenic
  15. Flink反压如何排查
  16. Word中公式变量解释时破折号对齐方法
  17. 常用的设计模式之观察者模式
  18. Oracle中对数据分组统计
  19. YJKJ公众号开发流程
  20. 学机器人编程课以后有用吗

热门文章

  1. Java对象的引用类型
  2. art-template入门(一)之介绍
  3. JavaScript学习总结(一)——JavaScript基础
  4. Java压缩技术(七) TAR——Commons实现
  5. 如何改变Idea的背景
  6. 实体类?Dao接口?Mapper映射文件?都别写了!!!用这种方法就可以
  7. XML——StAX Streaming API for XML(read+write)
  8. Spring IOC 和 AOP 概览
  9. 使用阿里巴巴json映射_使用JSON模式验证来映射稀疏JSON
  10. java 字符数组与字符串_用于字符串和数组的5种简单有效的Java技术