【问题标题】:Problem accessing HashMap data from another class从另一个类访问 HashMap 数据时出现问题
【发布时间】:2010-11-15 03:45:58
【问题描述】:

在访问 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
        ...
    }
    ...
}

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

【问题讨论】:

    标签: java data-structures hashmap


    【解决方案1】:

    两个问题中的任何一个,

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

    2. 不知何故,您正在使用 LoadDatabase 类的 2 个不同实例。尝试制作 LoadDatabase 单例。

    【讨论】:

    • @Carlos:很高兴它解决了问题。
    【解决方案2】:

    卡洛斯

    我怀疑您没有将您认为要放入地图的内容放入地图,或者您放入数据时的键与取出值时的键不同。我会记录/打印您输入的密钥/验证,然后记录/打印您尝试退出的密钥/验证。

    【讨论】:

    • loadDatabase 类中我有一个方法 printHash 并且值是 100% 所需的。这就是让我感到困惑的地方。我会添加方法让其他人知道,因为你提出了一个公平的观点
    • 还打印 buildDataLCS 中的密钥。此外,字符串的末端可能有空格,这可能会搞砸你。
    • 实际上我只是尝试打印密钥 -out- 并且它也是空的。就像正在访问另一个(空)地图
    • 是的,差不多!感谢您的所有帮助好友
    猜你喜欢
    • 2019-01-05
    • 2015-10-20
    • 2012-02-02
    • 2012-04-24
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    • 1970-01-01
    • 2013-01-25
    相关资源
    最近更新 更多