------- android培训、java培训、期待与您交流! ----------
/*
问题:统计字符串中各个字符出现的次数
按照正常的思路,写出了如下代码:
*/
char[] chs = str.toCharArray();
Map<Character,Integer> map = new TreeMap<Character,Integer>();
for(int i=0;i<chs.length;i++){
Integer value = map.get(chs[i]);
if(value == null){
//如果不存在,就put次数1进去
map.put(chs[i], 1);
}else{
//如果存在,次数++
map.put(chs[i], value + 1);
}
}
/*
优化:既然是每次都会put,那我就写一句put在最后便是;
1、如果map.get(chs[i])为null,
那我就简单的认为这个字符次数为0(其实null和0是不同的)
然后给value赋值为0;
2、不为null,put的时候次数++就好了;
3、最后一句便是put语句。
优化后的代码如下:
*/
//直接for循环了
for(int i=0;i<chs.length;i++){
Integer value = map.get(chs[i]);
if(value == null)
value = 0;
map.put(chs[i], value + 1);
}
/*
说好的思考,总结:算法之道的从无到有的思想!
*/
详细请查看:www.itheima.com