假设我已将枚举和相应的 emummap 声明为:
enum MyEnum {
CONSTANT1, CONSTANT2, CONSTANT3;
}
EnumMap<MyEnum, String> MyEnumMap = new EnumMap<MyEnum, String>(MyEnum.class);
例如,我想迭代 MyEnumMap
,只是一一打印每个 Entry
。
在以下情况下迭代键的最佳方法(最快)是什么:
- 当确保
MyEnum
中的每个常量都是MyEnumMap
中的键时 - 当
MyEnum
中的每个常量可能是也可能不是MyEnumMap
中的键时
我想在使用 MyEnumMap.keySet()
或 MyEnum.values()
的 foreach 循环之间进行选择。任何其他方法都是最受欢迎的。
最佳答案
没关系。在内部,EnumMap
是 implemented具有一对与 enum
条目数量相同长度的数组。第一个数组包含 enum
元素,而第二个数组包含映射到它们的对象或 NULL
占位符。因此,EnumMap 上的任何迭代都相当于整数索引上的 for 循环,该循环遍历了 enum 序数的整个范围,因此您应该选择使您的代码最易读的方法。
关于java - 在java中迭代EnumMap有什么更好的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30421914/