嵌套的HashMap(Java)-唯一键的值未存储在HashMap中

问题描述 投票:-1回答:1

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

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

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个回答
0
投票

首先,在顶部有这个:

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);
© www.soinside.com 2019 - 2024. All rights reserved.