正确定义HashMap的静态变量

时间:2013-09-18 05:39:11

标签: java hashmap

我对HashMap的逻辑定义有困难。

例如,我创建了以下类来存储一些必需的数据,我只是想知道它是否是良好的实现?我使用静态HashMap,因为自应用程序处于活动状态以来,我一直需要这些HashMaps

public abstract class DataTable {
    private static HashMap<String, String[]> mainData = new HashMap<String, String[]>();

    public static void putData(String[] data) {
        // put some data
    }

    public static String[] getData(String alias) {
        // return entered data with the given alias
    }
}

任何建议都将不胜感激......

1 个答案:

答案 0 :(得分:-1)

你的静态理解是可以的。

你的方法(设定者和吸气剂)应该是

 public static void putData(String key ,String[] data) {
           mainData.put(key, data);
        }

 public static HashMap<String, String[]> getData(String alias) {
            return mainData;
        }

当然,显然适当的gauridng和异常处理是强制性的。

更新:正如您在评论中提到的那样,您在地图上使用ConcurrentHashMap询问线程安全性。

Map<String, String[]> mainData = new ConcurrentHashMap<String, String[]>();

这是

  

一个哈希表,支持检索的完全并发和可更新的预期并发性。

A nice article on diff