Вложенный HashMap (Java) - значения не сохраняются в HashMap для уникальных ключей - PullRequest
0 голосов
/ 08 мая 2020

Я создал вложенную HashMap внутри класса, как показано ниже. Проблема здесь в том, что когда я вызываю функцию XOXO для разных CPID, например Profile1, Profile2, тогда HashMap сохраняет только последнее значение профиля, то есть Profile2.

Однако ясно, что я сохраняю внутренний HashMap PV во Outer 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}

1 Ответ

0 голосов
/ 08 мая 2020

Прежде всего, вверху у вас есть это:

public Class ABC

Однако class в нижнем регистре. Это должно выглядеть так:

public class ABC

Также здесь:

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

Вы вводите Value1 и Value2 как String, а не как переменные , и вы забыли точку с запятой. Так должно быть:

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