我正在使用 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。
使用String.valueOf(sub)
代替sub.toString()
; sub.toString()
每次都会返回相同的地址。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句