Java公共哈希表

时间:2013-08-08 18:06:21

标签: java hashtable

所以我希望能够有一个公共哈希表(有点像你将有一个公共String或int等等字段)。我该怎么做呢?我尝试过这样的事情:

public class Home {
    public static Hashtable<String, Double> test = new Hashtable<String, Double>();

    public static void main(String[] args) {
        test.put("A", 1.2);
        test.put("B", 1.3);
        test.put("C", 1.4);

        System.out.println(test.get("A");
    }
}       

我希望能够在另一个类中访问Hashtable及其信息。这样做的方法是什么?我有足够的东西吗?感谢。

4 个答案:

答案 0 :(得分:2)

public static void main(String[] args) {
        Home.test.put("A", 1.2);
        Home.test.put("B", 1.3);
        Home.test.put("C", 1.4);

        System.out.println(Home.test.get("A");
    }

答案 1 :(得分:0)

您应该能够以Map

的身份访问Home.test

但是,您不会添加任何初始值。你需要一个单独的方法来做到这一点。

答案 2 :(得分:0)

可以使用Home.test Home.test.put("A", 1.2)static联系,但您应该使用encapsulation。请注意,static关键字表示该类的所有实例共享同一个地图,如果您希望每个实例都是唯一的,则必须删除public class ClassWithTheTable{ private static Map<String, Double> table = new Hashtable<String,Double)>(); public Map<String, Double> getTable(){ return table; } public void setTable(Map<String,Double> table){ this.table = table; } //Rest of code ommited. } 关键字。

将地图(最好使用界面)声明为私有并提供getter / setter。

{{1}}

答案 3 :(得分:0)

如果有多个线程访问该变量,可能要使用:

public static final Map<String, Double> test = new ConcurrentHashMap<>();

您可以使用

从其他班级进行访问
double value = Home.test.get("A");