标签:
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:拿刚才得到的字符作为键到集合中去找值,看返回值 * 是null:说明该键不存在,就把该字符作为键,1作为值存储 * 不是null:说明该键存在,就把值加1,然后重写存储该键和值 * F:定义字符串缓冲区变量 * G:遍历集合,得到键和值,进行按照要求拼接 * H:把字符串缓冲区转换为字符串输出 * * 录入:linqingxia * 结果:result:a(1)g(1)i(3)l(1)n(2)q(1)x(1) */ public class TreeMapDemo { public static void main(String[] args) { // 定义一个字符串(可以改进为键盘录入) Scanner sc = new Scanner(System.in); System.out.println("请输入一个字符串:"); String line = sc.nextLine(); // 定义一个TreeMap集合 TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>(); //把字符串转换为字符数组 char[] chs = line.toCharArray(); //遍历字符数组,得到每一个字符 for(char ch : chs){ //拿刚才得到的字符作为键到集合中去找值,看返回值 Integer i = tm.get(ch); //是null:说明该键不存在,就把该字符作为键,1作为值存储 if(i == null){ tm.put(ch, 1); }else { //不是null:说明该键存在,就把值加1,然后重写存储该键和值 i++; tm.put(ch,i); } } //定义字符串缓冲区变量 StringBuilder sb= new StringBuilder(); //遍历集合,得到键和值,进行按照要求拼接 Set<Character> set = tm.keySet(); for(Character key : set){ Integer value = tm.get(key); sb.append(key).append("(").append(value).append(")"); } //把字符串缓冲区转换为字符串输出 String result = sb.toString(); System.out.println("result:"+result); } }
import java.util.Set; import java.util.TreeMap; /* * TreeMap:是基于红黑树的Map接口的实现。 * * HashMap<String,String> * 键:String * 值:String */ public class TreeMapDemo { public static void main(String[] args) { // 创建集合对象 TreeMap<String, String> tm = new TreeMap<String, String>(); // 创建元素并添加元素 tm.put("hello", "你好"); tm.put("world", "世界"); tm.put("java", "爪哇"); tm.put("world", "世界2"); tm.put("javaee", "爪哇EE"); // 遍历集合 Set<String> set = tm.keySet(); for (String key : set) { String value = tm.get(key); System.out.println(key + "---" + value); } } }
import java.util.Comparator; import java.util.Set; import java.util.TreeMap; /* * TreeMap<Student,String> * 键:Student * 值:String */ public class TreeMapDemo2 { public static void main(String[] args) { // 创建集合对象 TreeMap<Student, String> tm = new TreeMap<Student, String>( new Comparator<Student>() { @Override public int compare(Student s1, Student s2) { // 主要条件 int num = s1.getAge() - s2.getAge(); // 次要条件 int num2 = num == 0 ? s1.getName().compareTo( s2.getName()) : num; return num2; } }); // 创建学生对象 Student s1 = new Student("潘安", 30); Student s2 = new Student("柳下惠", 35); Student s3 = new Student("唐伯虎", 33); Student s4 = new Student("燕青", 32); Student s5 = new Student("唐伯虎", 33); // 存储元素 tm.put(s1, "宋朝"); tm.put(s2, "元朝"); tm.put(s3, "明朝"); tm.put(s4, "清朝"); tm.put(s5, "汉朝"); // 遍历 Set<Student> set = tm.keySet(); for (Student key : set) { String value = tm.get(key); System.out.println(key.getName() + "---" + key.getAge() + "---" + value); } } }
import java.util.ArrayList; import java.util.HashMap; import java.util.Set; /* * 为了更符合要求: * 这次的数据就看成是学生对象。 * * 传智播客 * bj 北京校区 * jc 基础班 * 林青霞 27 * 风清扬 30 * jy 就业班 * 赵雅芝 28 * 武鑫 29 * sh 上海校区 * jc 基础班 * 郭美美 20 * 犀利哥 22 * jy 就业班 * 罗玉凤 21 * 马征 23 * gz 广州校区 * jc 基础班 * 王力宏 30 * 李静磊 32 * jy 就业班 * 郎朗 31 * 柳岩 33 * xa 西安校区 * jc 基础班 * 范冰冰 27 * 刘意 30 * jy 就业班 * 李冰冰 28 * 张志豪 29 */ public class HashMapDemo { public static void main(String[] args) { // 创建大集合 HashMap<String, HashMap<String, ArrayList<Student>>> czbkMap = new HashMap<String, HashMap<String, ArrayList<Student>>>(); // 北京校区数据 HashMap<String, ArrayList<Student>> bjCzbkMap = new HashMap<String, ArrayList<Student>>(); ArrayList<Student> array1 = new ArrayList<Student>(); Student s1 = new Student("林青霞", 27); Student s2 = new Student("风清扬", 30); array1.add(s1); array1.add(s2); ArrayList<Student> array2 = new ArrayList<Student>(); Student s3 = new Student("赵雅芝", 28); Student s4 = new Student("武鑫", 29); array2.add(s3); array2.add(s4); bjCzbkMap.put("基础班", array1); bjCzbkMap.put("就业班", array2); czbkMap.put("北京校区", bjCzbkMap); // 晚上可以自己练习一下 // 上海校区数据自己做 // 广州校区数据自己做 // 西安校区数据 HashMap<String, ArrayList<Student>> xaCzbkMap = new HashMap<String, ArrayList<Student>>(); ArrayList<Student> array3 = new ArrayList<Student>(); Student s5 = new Student("范冰冰", 27); Student s6 = new Student("刘意", 30); array3.add(s5); array3.add(s6); ArrayList<Student> array4 = new ArrayList<Student>(); Student s7 = new Student("李冰冰", 28); Student s8 = new Student("张志豪", 29); array4.add(s7); array4.add(s8); xaCzbkMap.put("基础班", array3); xaCzbkMap.put("就业班", array4); czbkMap.put("西安校区", xaCzbkMap); // 遍历集合 Set<String> czbkMapSet = czbkMap.keySet(); for (String czbkMapKey : czbkMapSet) { System.out.println(czbkMapKey); HashMap<String, ArrayList<Student>> czbkMapValue = czbkMap .get(czbkMapKey); Set<String> czbkMapValueSet = czbkMapValue.keySet(); for (String czbkMapValueKey : czbkMapValueSet) { System.out.println("\t" + czbkMapValueKey); ArrayList<Student> czbkMapValueValue = czbkMapValue .get(czbkMapValueKey); for (Student s : czbkMapValueValue) { System.out.println("\t\t" + s.getName() + "---" + s.getAge()); } } } } }
标签:
原文地址:http://blog.csdn.net/samkieth/article/details/51346041