【发布时间】:2015-06-25 09:55:50
【问题描述】:
我有一个要求,即多个枚举需要在 Map<Key,Value> 中找到一个值(枚举的组合将返回一个唯一值)。
我认为有很多选择,比如有一个包装器对象说键,它将充当键。此外,如果键限制为两个(不确定),我们可以使用 Guava Table。
想要检查以下方法,其中两个枚举将映射到唯一的计算值,需要理解建议 -
i)如果这种方法很好?
ii) 如果是,它是否可扩展?即可以很容易地使其通用以支持'n'枚举
如toKey(Enum ...enums)
下面是两个枚举的 sn-p -
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
谢谢!
【问题讨论】:
-
您希望您的密钥由(来自)多个枚举类型或多个枚举值(相同类型)的(值)组成吗?跨度>
标签: java dictionary enums multikey