Почему я получаю адрес объекта, когда пытаюсь напечатать каждый ключ, используя (из keySet ())? - PullRequest
0 голосов
/ 19 апреля 2019

Я использую цикл foreach для печати всех ключей, хранящихся в моем HashMap, и их значений с помощью map.get (key), но я получаю адрес объекта, когда пытаюсь получить эти ключи.Где я иду не так?

String s="abba";
HashMap<String,Integer> map=new HashMap<String,Integer>();
for(int i=0;i<s.length();++i)
{
  for(int j=i+1;j<=s.length();++j)
    {
      char sub[]=s.substring(i,j).toCharArray();
      Arrays.sort(sub);
      String s1=sub.toString();
      if(!map.containsKey(s1))
     map.put(s1,1);
      else
    map.put(s1,map.get(s1)+1); //Here also iam getting null value with map.get(s1)
     }
}

for(String keyList:map.keySet())
{
    System.out.println(keyList+" "+map.get(keyList));
}

Если клавиша повторяется, значение должно быть увеличено на 1, но оно остается равным 1.

1 Ответ

0 голосов
/ 19 апреля 2019

Используйте String.valueOf(sub) вместо sub.toString(); sub.toString() будет возвращать один и тот же адрес каждый раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...