java - 静态 HashMap 初始化

标签 java spring hashmap

我有这门课,我想知道:
1° 这是定义静态 HashMasp 的最佳方式吗
2° 这是在基于 Spring 的应用程序中执行此操作的最佳方法吗?(Spring 是否提供更好的方法来执行此操作?)

提前致谢!

    public class MyHashMap {
        private static final Map<Integer, String> myMap;
        static {
            Map<CustomEnum, String> aMap = new HashMap<CustomEnum, String>();
            aMap.put(CustomEnum.UN, "one");
            aMap.put(CustomEnum.DEUX, "two");
            myMap = Collections.unmodifiableMap(aMap);
        }

        public static String getValue(CustomEnum id){
            return myMap.get(id);
        }
    }


    System.out.println(MyHashMap.getValue(CustomEnum.UN));

最佳答案

有几种方法可以做到这一点。例如,如果您的 map 是不可变的,您可以考虑使用 Google Guava libraries 它有一个 ImmutableMap 类,可用于将您的 map 构造为:-

static final ImmutableMap<String, Integer> WORD_TO_INT =
       new ImmutableMap.Builder<String, Integer>()
           .put("one", 1)
           .put("two", 2)
           .put("three", 3)
           .build();

如果您已经在使用 Spring Framework并使用 XML 连接您的 bean,然后您可以直接通过 XML 填写 map :-

    ...    
<!-- creates a java.util.Map instance with the supplied key-value pairs -->
<util:map id="emails">
    <entry key="pechorin" value="pechorin@hero.org"/>
    <entry key="raskolnikov" value="raskolnikov@slums.org"/>
    <entry key="stavrogin" value="stavrogin@gov.org"/>
    <entry key="porfiry" value="porfiry@gov.org"/>
</util:map>
    ...

关于java - 静态 HashMap 初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35762823/

相关文章:

java - 一键多值并发Map

Java - StringIndexOutOfBoundsException 异常

java - 如何使从其他代码调用的长 SQL 可读?

外部 jar 库上的 JAVA NoClassDefFoundError

java - 如何使用 apache tomcat 在 spring boot 中设置 root url?

java - Spring Security,方法安全注释(@Secured)不起作用(java config)

java - 糟糕的动态编程实现或 HashMap 慢?

java - 如何从另一个build.gradle调用build.gradle

java - Spring应用程序找不到hbm.xml映射文件

java - 在 HashMap 中存储总和和频率背后的直觉