首页 > 其他分享 >EnumSet 和 EnumMap 简单理解

EnumSet 和 EnumMap 简单理解

时间:2022-11-19 10:22:46浏览次数:72  
标签:Java HashMap 实现 EnumSet 理解 EnumMap 运算

在阅读《Effective Java》时,看到了 EnumSet,就去查了下。

EnumSet

首先看一下类图:
EnumSet

内部实现上,每个 EnumSet 内容都表示为位矢量(区别于 HashSet 底层使用 HashMap 实现),一般(低于 64 个元素)整个 EnumSet 就是用一个 long 的位运算来表示的。也就是说它替你使用位算法实现了这一切,避免你自己写位运算导致代码难读懂的情况(实际上位运算不是太难读懂)。

但是不建议使用,具体看 EnumSet 可能是 Java 中最无意义的类

EnumMap

类图如下:
EnumMap

EnumMapHashMap 区别:

  1. EnumMap 主要用于对枚举值做统计,EnumMap 能实现的,HashMap 都能实现;
  2. EnumMap 的性能更好,这是因为 EnumMapEnum 特性决定了不论是从设计上,实现上,存储上都决定了其有很好的性能;
  3. EnumMap 还有其特殊的一些特性,例如维持了自然顺序

更多详细分析请看 Java数据类型系列之EnumMap

标签:Java,HashMap,实现,EnumSet,理解,EnumMap,运算
From: https://www.cnblogs.com/ageovb/p/16905557.html

相关文章

  • 一篇彻底带你理解微服务
    在系统架构与设计的实践中,从宏观上可以总结为三个阶段;集中式架构:就是把所有的功能、模块都集中到一个项目中,部署在一台服务器上,从而对外提供服务(单体架构、单体服务、单体应......
  • HOG算法的理解与python实现
    HOG称为方向梯度直方图(HistogramofOrientedGradient),主要是为了对图像进行特征提取。所以在传统目标检测算法中经常与SVM结合用于行人识别任务(当前都是基于深度学习来做......
  • Java——数组(概念理解+应用举例)
    一、数组是什么1.数组的定义数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个数组元素,......
  • 超精准!AI 结合邮件内容与附件的意图理解与分类!⛵
    ......
  • Pthread 并发编程(三)——深入理解线程取消机制
    Pthread并发编程(三)——深入理解线程取消机制基本介绍线程取消机制是pthread给我们提供的一种用于取消线程执行的一种机制,这种机制是在线程内部实现的,仅仅能够在共享内......
  • 数组的前闭后开-前开后闭-前闭后闭理解--笔记
    1、数学里面的区间定义设a,b是两个实数,且a≤b,这里实数a,b叫做区间的端点,从下边的三个定义你就可以看出来,闭区间是有a,b两个端点的。1)满足a≤x≤b的实数x的......
  • 能耗监测管理解决方案
    能耗监测系统是华普物联为积极响应国家发展改革委关于能耗在线监测系统推广建设要求而研发设计,致力于协助重点用能单位信息化转型,加强能源消耗日常调度、提升能源管理精细......
  • mixin 混入的使用与理解
    代码: 首页先引入A和B组件<template><div><DomeA></DomeA><hr/><DomeB></DomeB><hr/><button@click="commonMethod()">commonMethod......
  • 指令理解,用于串口,继电器,控制板
     1.5501-固定死的2.11断开,12吸合3.举例说明吸合地址为1的第1路指令:5501120000000169:01,代表几路。69从下面这个图中得来的16进制(CRC8)(累加和,LRC校验......
  • 关于JeecgBoot 的项目理解、使用心得和改进建议
     1.项目理解维护方便。我之前的项目用单体架构,所有模块都在一起,spring单线程实例化bean让人头疼,启动一次需要5分钟。代码生成部分,支持生成的模板类型涵......