我有一个枚举类:
enum class E { A, B, C, D }
如何以最简洁的方式初始化一个EnumMap以包含E的所有值作为键,每个键都有一个初始值为0?
val map = ...?
assert(map is EnumMap<E, Int>)
assert(map[E.A] == 0)
assert(map[E.B] == 0)
assert(map[E.C] == 0)
assert(map[E.D] == 0)
The most concise I could think of is:
val map = E.values().associateWithTo(EnumMap(E::class.java)) { 0 }
然而,重复使用名称
E
违反了DRY原则。并且单词 associateWithTo
有点啰嗦。是否有更简洁易读的方法?我希望有类似于EnumSet.allOf()
的EnumMap.allOf()
。
EnumMap
吗?Map
不够用吗? - João Dias