本帖最后由 杨兴庭 于 2013-7-9 21:17 编辑
import java.util.*;
class MapTest3
{
public static void main(String[] args)
{
charCount("aabfcdabcdfa");
}
public static String charCount(String str)
{
char[]chs=str.toCharArray();
TreeMap<Character,Integer>tm=new TreeMap<Character,Integer>();
for(int x=0;x<chs.length;x++)
{
Integer value=tm.get(chs[x]);
if(value==null)
{
tm.put(chs[x],1);
}
else
{
value=value+1;
tm.put(chs[x],value);
}
}
System.out.println(tm);
return null;
}
}
在这段程序中,其中Integer value=tm.get(chs[x]);这句程序让我不解,我们拿先几次循环来说,当第一个字母a进入容器Set中,发现没有value为空,(a,1)就存入到容器中,接着第二个字母
还是a进来,这是value的值在之前变为1后,这次在不等于null的前提下,进行自增+1,变成2.那么就把(a,2)存入容器中,两次的存入就把之前的(a,1)给覆盖了,这样理解正解吗?另外,覆盖
到底是怎么进行的,它怎么知道我就要覆盖这两个数据?
|