我有一个要求,即多个枚举需要在Map<Key,Value>
(枚举的组合将返回唯一值)中找到值。 我认为有很多选择,比如有一个包装对象说Key,它将作为一个Key。此外,如果按键限制为两个(不确定),我们可以使用番石榴表。从多个枚举类型创建映射的唯一键
要检查下面的方法,其中两个枚举将映射到一个独特的计算值,需要理解的建议 -
我)如果这种做法是罚款?
ii)如果是,是否可扩展?即能轻易地将它由通用来支持 'N' 枚举 在toKey(Enum ...enums)
下面是摘录了两个枚举 -
static Integer toKey(Status s, SubStatus ss) {
return Integer.valueOf(s.ordinal() * SubStatus.values().length + ss.ordinal());
}
而且
Status { NONE, PASS, WARN, REJECT }
SubStatus { NONE, SOFT_REJECT, HARD_REJECT }
Integer key1 = toKey(Status.REJECT, SubStatus.HARD_REJECT)
Integer key2 = toKey(Status.WARN, SubStatus.NONE)
then key1 != key2
谢谢!
是否希望您的密钥由(来自)多个枚举类型*或多个枚举*值*(相同类型)组成? – Buurman