我想创建一个字符串数组(枚举)的数组(枚举)。我认为在 Java 中不可能实现这一点,但我听说过 EnumMap。
public class Tricky {
public enum enumA { A1, A2, A3 };
public enum enumB { B1, B2, B3 };
public enum enumC { C1, C2, C3 };
HashMap<EnumMap<enumA, EnumMap<enumB, enumC>>,String> item
= new HashMap<EnumMap<enumA, EnumMap<enumB, enumC>>,String>();
public Tricky() {
// How do I put and get strings in my hash map?
}
}
上面的代码可以编译,但是如何在 map 中放置和获取字符串项?
最佳答案
那不应该是EnumMap<EnumA, EnumMap<EnumB, EnumMap<EnumC, String>>>
?在这种情况下你会这样做
EnumMap<...> enumMapC = new EnumMap<...>();
enumMapC.put(EnumC.VALUE, "SomeString");
EnumMap<...> enumMapB = new EnumMap<...>();
enumMapB.put(EnumB.VALUE, enumMapC);
EnumMap<...> enumMapA = new EnumMap<...>();
enumMapA.put(EnumA.VALUE, enumMapB);
尽管我建议您使用一个好的 IDE 来编写此代码。您可能需要考虑创建一些类,而不是直接使用 EnumMap,以使其更易于管理。
如果您使用数组中的所有位置,您可能需要使用枚举的序数值作为普通数组的索引。
关于java - 如何将字符串项放入字符串枚举的枚举的枚举映射中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6171369/