从另一个类访问HashMap数据时出现问题

时间:2010-11-15 03:45:58

标签: java data-structures hashmap

在访问HashMap中的数据时遇到问题。它是在一个类中创建的,并且是从另一个类中调用的。见下文;

创建

public class LoadDatabase {
    public Map virusDatabase = new HashMap();
    ...
    public void toHash(String v_Name, String signature) {
        virusDatabase.put(v_Name, signature);
    }
    ...
    public void printDatabase() {   // This method is displaying correct data, so is being stored.
        Iterator iterator = virusDatabase.keySet().iterator();
        while (iterator.hasNext()) {
            String key = (String) iterator.next();
            System.out.println(key + " = " + virusDatabase.get(key));
        }
    }
    ...
}

需要访问

public class LCS {
    LoadDatabase lb = new LoadDatabase();
    Tokenizer T = new Tokenizer();
    ...
    public void buildDataLCS(String[] inTokens) {
        Iterator iterator = lb.virusDatabase.keySet().iterator();
        ...                
        while (iterator.hasNext()){
            String key = (String) iterator.next();
            String v_sig = (String) lb.virusDatabase.get(key);
            System.out.println(v_sig);  //Example of problem, nothing printed
        ...
    }
    ...
}

为什么会出现问题?你能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:4)

两个问题中的任何一个,

  1. 你没有放任何东西。因为我看不到你对toHash(String v_Name, String signature)方法的调用。

  2. 您正在以某种方式使用LoadDatabase类的2个不同实例。尝试制作LoadDatabase单身。

答案 1 :(得分:1)

卡洛斯

我怀疑你没有把你认为放在地图中的东西放在地图上,或者你输入数据时的密钥与你取出值时的密钥不同。我会记录/打印你输入的键/值,然后记录/打印你试图离开的键/值。