【问题标题】:Nested HashMap values are not getting stored in HashMap for unique keys嵌套的 HashMap 值未存储在 HashMap 中以获取唯一键
【发布时间】:2020-05-08 03:52:17
【问题描述】:

我在一个类中创建了一个嵌套的 HashMap,如下所示。这里的问题是当我为不同的 CPID 调用函数 XOXO 时,例如Profile1、Profile2 然后 HashMap 只存储最后一个配置文件值,即 Profile2。

但是,很明显,我每次都将内部 HashMap PV 存储到外部 HashMap CP 中以用于不同的键,即 CPID (Profile1, Profile2)

public class abc {
    public static HashMap<String, HashMap<String, String>> CP = new HashMap<>();
    HashMap<String, String> PV = null;
    public void XOXO(CPID) {
        PV = new HashMap<>();
        String Value1 = Function.getText(5, 5);
        String Value2 = Function.getText(6, 6);
        //Note value at coordinate (5,5)/(6,6) is changing for diff CPID
        PV.put("AB", Value1);
        PV.put("CD", Value2);
        CP.put(CPID, PV);
    }
}

输出:

{Profile1, {AB= 123, CD = 456}
{Profile2, {AB= 123, CD = 456}

预期输出:

{Profile1, {AB= 999, CD = 888}
{Profile2, {AB= 123, CD = 456}

【问题讨论】:

    标签: java multidimensional-array hashmap


    【解决方案1】:

    首先,在顶部你有这个:

    public Class ABC
    

    但是,class 是小写的。所以它应该是这样的:

    public class ABC
    

    还有,在这里:

    PV.put("AB", "Value1")
    PV.put("CD", "Value2")
    

    您正在输入 Value1Value2 作为 String,而不是作为变量,并且您忘记了分号。所以应该是这样的:

    PV.put("AB", Value1);
    PV.put("CD", Value2);
    

    【讨论】:

    • 感谢您指出一些事情,这就是我想把它放在那里但在发布时出错了。但是,输出保持不变。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-12
    • 1970-01-01
    • 1970-01-01
    • 2020-08-04
    • 2014-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多