EnumSet 和 EnumMap 简单理解
在阅读《Effective Java》时,看到了 EnumSet
,就去查了下。
EnumSet
首先看一下类图:
内部实现上,每个 EnumSet
内容都表示为位矢量(区别于 HashSet 底层使用 HashMap 实现),一般(低于 64 个元素)整个 EnumSet 就是用一个 long
的位运算来表示的。也就是说它替你使用位算法实现了这一切,避免你自己写位运算导致代码难读懂的情况(实际上位运算不是太难读懂)。
但是不建议使用,具体看 EnumSet 可能是 Java 中最无意义的类。
EnumMap
类图如下:
EnumMap
和 HashMap
区别:
EnumMap
主要用于对枚举值做统计,EnumMap
能实现的,HashMap
都能实现;EnumMap
的性能更好,这是因为EnumMap
的Enum
特性决定了不论是从设计上,实现上,存储上都决定了其有很好的性能;EnumMap
还有其特殊的一些特性,例如维持了自然顺序。
更多详细分析请看 Java数据类型系列之EnumMap
本文作者:ageovb
本文链接:https://www.cnblogs.com/ageovb/p/16905557.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步