1 import java.util.Iterator;
2 import java.util.Map;
3 import java.util.Set;
4 import java.util.TreeMap;
5 /*
6 * 统计abacbacdadbc中的每个字母出现的次数,输出格式是:a(4)b(3)c(3)d(2)
7 *
8 * 选中TreeMap的原因是:key不重复且按顺序排序取出
9 *
10 * 思路:
11 * 1.将字符串abacbacdadbc转换成字符数组
12 * 2.分别取字符,与TreeMap中的key进行比较
13 * 2.1 如果TreeMap中存在对应的字符,则取出并自增,再存入TreeMap
14 * 2.2 如果TreeMap中不存在对应的字符,则直接存入该字符,value=1
15 */
16
17 public class A3B1C2_TreeMapTest {
18
19 public static void main(String[] args) {
20
21 TreeMap<String, Integer> tm=new TreeMap<>();
22 String string="abacbacdadbc";
23 char[] ch=string.toCharArray();
24
25 for(char r :ch){
26 //tm.put(String.valueOf(r), 1);
27 //System.out.println(r);
28 if(compareKey(r, tm))
29 {
30 int i=tm.get(String.valueOf(r));
31 i++;
32 tm.put(String.valueOf(r), i);
33 }else {
34 tm.put(String.valueOf(r), 1);
35 }
36 }
37 System.out.println(tm);
38 Set<Map.Entry<String, Integer>> entrySet=tm.entrySet();
39 Iterator<Map.Entry<String, Integer>> iterator=entrySet.iterator();
40 while(iterator.hasNext()){
41 Map.Entry<String, Integer> me=iterator.next();
42 String key=me.getKey();
43 int value=me.getValue();
44 System.out.print(key+"("+value+")");
45 }
46
47 }
48 public static boolean compareKey(char c,TreeMap<String, Integer> treeMap){
49 if (treeMap.containsKey(String.valueOf(c))) {
50 return true;
51 }
52 return false;
53 }
54
55 }