TreeMap类
import java.util.Set; import java.util.TreeMap; public class IntegerDemo { public static void main(String[] args) { // TODO Auto-generated method stub TreeMap<String, String> tm = new TreeMap<String, String>(); tm.put("hello", "world"); tm.put("java", "c++"); tm.put("sql", "os"); System.out.println(tm); Set<String> set = tm.keySet(); for (String key : set) { String value = tm.get(key); System.out.println(key + "---" + value); } } }
/*
* 要求:"aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1)
*
* 分析:
* A:定义一个字符串
*
* B:定义一个TreeMap集合
* 键:Character
* 值:Integer
*
* C:把字符串转换为字符数组
*
* D:遍历字符串数组,得到每一个字符
*
* E:将D得到的字符作为键拿到集合查询,看返回值
* 是null,说明键不存在,就把该字符作为键,1作为值存储
* 不是null,说明键存在,把值加1,然后重写存储该键和值
*
* F:定义字符串缓冲区变量
*
* G:遍历集合,得到键和值,进行字符串拼接
*
* H:输出字符串
* */
import java.util.Scanner; import java.util.Set; import java.util.TreeMap; /* * 要求:"aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1) * * 分析: * A:定义一个字符串 * * B:定义一个TreeMap集合 * 键:Character * 值:Integer * * C:把字符串转换为字符数组 * * D:遍历字符串数组,得到每一个字符 * * E:将D得到的字符作为键拿到集合查询,看返回值 * 是null,说明键不存在,就把该字符作为键,1作为值存储 * 不是null,说明键存在,把值加1,然后重写存储该键和值 * * F:定义字符串缓冲区变量 * * G:遍历集合,得到键和值,进行字符串拼接 * * H:输出字符串 * */ public class IntegerDemo { public static void main(String[] args) { // TODO Auto-generated method stub // A:定义一个字符串 Scanner sc = new Scanner(System.in); System.out.println("请输入一个字符串:"); String line = sc.nextLine(); // B:定义一个TreeMap集合 TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>(); // C:把字符串转换为字符数组 char chs[] = line.toCharArray(); // D:遍历字符串数组,得到每一个字符 for (char ch : chs) { // E:将D得到的字符作为键拿到集合查询,看返回值 Integer i = tm.get(ch); if (i != null) { i++; tm.put(ch, i); } else { tm.put(ch, 1); } } // F:定义字符串缓冲区变量 StringBuilder sb = new StringBuilder(); // G:遍历集合,得到键和值,进行字符串拼接 Set<Character> set = tm.keySet(); for (Character key : set) { Integer value = tm.get(key); sb.append(key).append("(").append(value).append(")"); } // H:输出字符串 String result = sb.toString(); System.out.println(result); } }