肯定的微笑
准备,往前出发
1. 字符统计
键盘录入字符串
获取字符串中每一个字母出现的次数
要求结果:
a(5)b(4)c(3)d(2)e(1)
/*
先接收字符串并转为字符数组
利用遍历向 treemap 中覆盖添加
利用 stringbuffer 接受格式统一后的数据
*/
Scanner sc = new Scanner(System.in);
String s = sc.next();
char[] chars = s.toCharArray();
TreeMap<Character, Integer> tm = new TreeMap<>();
for (char c : chars) {
if(!tm.containsKey(c)){
tm.put(c,1);
}else{
Integer i = tm.get(c);
// 此处需要先自增 1,再调用,否则一直是 1
tm.put(c,++i);
}
}
Set<Map.Entry<Character, Integer>> entries = tm.entrySet();
StringBuffer sb = new StringBuffer();
for (Map.Entry<Character, Integer> entry : entries) {
Character key = entry.getKey();
Integer value = entry.getValue();
sb.append(key+"("+value+")");
}
System.out.println(sb);
}
2. HashMap和Hashtable的区别
1、相同点:
它们存储的元素类型都是K-V格式的
2、不同点:
1)Hashtable是线程安全的,HashMap不是线程安全的
2)Hashtable的key的值和value的值都不允许为null,而HashMap均允许