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 }