Java顶用Map统计字符出现次数

Java中用Map统计字符出现次数
本人Java新手上路
 有以下一段代码是用来统计Map中各个字符出现的次数的,其中第6行不明白为什么val为什么要加1,作用是什么,为什么当只有一个字符比如a进行统计时,用int val = map.get(c)+1;和int val = map.get(c)结果都一样


public  static Map<Character,Integer> countChars(String str){
Map<Character,Integer> map = new HashMap<Character,Integer>();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if(map.containsKey(c)){
int val = map.get(c)+1; 
map.put(c, val);
}else{
map.put(c, 1);
}

------解决思路----------------------
相同 的话就是累加上去   啊。
------解决思路----------------------
你是要统计每个字符出现的个数,当相同字符出现的时候,当然要把map里面那个字符所对应的val加1。
------解决思路----------------------
Map<Character,Integer> map = new HashMap<Character,Integer>();
//循环需要统计的字符串
for (int i = 0; i < str.length(); i++) {
//遍历字符串中的每个字符
char c = str.charAt(i);
//查找map中是否已经包含字符串的字符
if(map.containsKey(c)){
//如果已经包含则数量+1
int val = map.get(c)+1; 
//将+1后的值存放回map
map.put(c, val);
}else{
//如果未包含则初始化为1
map.put(c, 1);
}
------解决思路----------------------
引用:
Quote: 引用:

Map<Character,Integer> map = new HashMap<Character,Integer>();
//循环需要统计的字符串
for (int i = 0; i < str.length(); i++) {
//遍历字符串中的每个字符
char c = str.charAt(i);
//查找map中是否已经包含字符串的字符
if(map.containsKey(c)){
//如果已经包含则数量+1
int val = map.get(c)+1; 
//将+1后的值存放回map
map.put(c, val);
}else{
//如果未包含则初始化为1
map.put(c, 1);
}

那么val的初值是什么


初值看这一句:
map.put(c, 1);
当map里面没有当前遍历到的字符时,就将此字符放到map里面,并将val的初值设为1。