java - 在java中迭代EnumMap有什么更好的方法?

标签 java dictionary enums enum-map

假设我已将枚举和相应的 emummap 声明为:

enum MyEnum {
    CONSTANT1, CONSTANT2, CONSTANT3;
}

EnumMap<MyEnum, String> MyEnumMap = new EnumMap<MyEnum, String>(MyEnum.class);

例如,我想迭代 MyEnumMap,只是一一打印每个 Entry

在以下情况下迭代键的最佳方法(最快)是什么:

  1. 当确保MyEnum中的每个常量都是MyEnumMap中的键时
  2. MyEnum中的每个常量可能是也可能不是MyEnumMap中的键时

我想在使用 MyEnumMap.keySet()MyEnum.values() 的 foreach 循环之间进行选择。任何其他方法都是最受欢迎的。

最佳答案

没关系。在内部,EnumMapimplemented具有一对与 enum 条目数量相同长度的数组。第一个数组包含 enum 元素,而第二个数组包含映射到它们的对象或 NULL 占位符。因此,EnumMap 上的任何迭代都相当于整数索引上的 for 循环,该循环遍历了 enum 序数的整个范围,因此您应该选择使您的代码最易读的方法。

关于java - 在java中迭代EnumMap有什么更好的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30421914/

相关文章:

java - GL11.glMatrixMode() 的 LWJGL 错误 "function is not supported"

java - JAVA中解析二维数组的JSON

java - 为什么同步在此代码中无法正常工作?

python - 我如何使用(唯一键和最大值)从字典中提取所有值

python - 使用干净简洁的自动值语法创建 StringAutoEnum 类

java - 暂停 channel 到 channel 复制文件

mongodb - 在 Erlang 中创建和修改 MongoDB 中的映射

hadoop - Hadoop OutputCollector重复键

c++ - 枚举是实现位标志的规范方式吗?

java - 枚举类类型变量