java - 如何将字符串项放入字符串枚举的枚举的枚举映射中?

标签 java enums dictionary enum-map

我想创建一个字符串数组(枚举)的数组(枚举)。我认为在 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/

相关文章:

java - JUnit 测试代码在检查异常后停止执行

java - 只构建jar,然后删除所有文件夹

java - Java 枚举中的递归?

objective-c - 带有 NSnumber 的枚举

python - 当在枚举值中使用类函数时,“函数”对象没有属性 'value'

java - 在 jface SourceViewer 中处理 KeyEvent 不尊重 doit=false

python - Pandas 数据框到多键字典

javascript - React js 组件, map 有效,foreach 无效

c++ - C++14 中 vector 的 unordered_map 和 erase-remove 习语的奇怪行为

java - 无法在 Servlet 应用程序中使用 Thymeleaf 访问请求属性或参数