我有一個要求,即多個枚舉需要在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