应用一:
1、将学生作为键,地址作为值进行存储,名字年龄相同则被认定为一个人,最后输出
2、最后按年龄进行排序
3、需求改变、按姓名进行排序
应用二:
统计字符串中字符出现次数
相关代码
package com.javaxl; import java.util.*; /** * @author 小李飞刀 * @site www.javaxl.com * @company * @create 2019-05-14 14:28 */ public class MapDemo { public static void main(String[] args) { // method_student(args); String s = method_times("sdfsfsfwefjlksdjflksdlfsdlkjfslal"); System.out.println(s); } /** * 字符串字符出现次数,字符从小到大排布 * sdfsfsfwefjlksdjflksdlfsdlkjfslal * a(6)c(9)r(8)... * @param s */ public static String method_times(String s) { char[] chars = s.toCharArray(); Map<Character,Integer> m = new TreeMap<>(); for (Character c : chars) { if(!m.containsKey(c)){ m.put(c,1); }else { m.put(c,m.get(c)+1); } } // System.out.println(m); StringBuffer sb = new StringBuffer(); Set<Map.Entry<Character, Integer>> entrySet = m.entrySet(); for (Map.Entry<Character, Integer> entry : entrySet) { sb.append(entry.getKey()+"("+entry.getValue()+")"); } return sb.toString(); } /** * 学生区域化案例 * @param args */ public static void method_student(String[] args) { // Map<Map_Student,String> m = new HashMap<>(); // Map<Map_Student,String> m = new TreeMap<>(); Map<Map_Student,String> m = new TreeMap<>(new Map_Student_Comp()); m.put(new Map_Student("java01",11),"beijing"); m.put(new Map_Student("djava02",22),"shanghai"); m.put(new Map_Student("ejava03",33),"guangzhou"); m.put(new Map_Student("ajava04",44),"shenzheng"); m.put(new Map_Student("ejava03",33),"xxx"); m.put(new Map_Student("djava03",33),"ddd"); m.put(new Map_Student("djava03",32),"eee"); Set<Map.Entry<Map_Student, String>> entries = m.entrySet(); Iterator<Map.Entry<Map_Student, String>> it = entries.iterator(); while (it.hasNext()) { System.out.println(it.next()); } } } class Map_Student implements Comparable<Map_Student> { private String name; private int age; public Map_Student() { } public Map_Student(String name, int age) { this.name = name; this.age = age; } @Override public int hashCode() { return this.getName().hashCode()+this.age*16; } @Override public boolean equals(Object obj) { if(!(obj instanceof Map_Student)) try { throw new ClassNotFoundException("java.lang.Object can not cast to com.javaxl.Map_Student"); } catch (ClassNotFoundException e) { e.printStackTrace(); } Map_Student map_student = (Map_Student)obj; return this.getName().equals(map_student.getName()) && this.getAge() == map_student.getAge(); } @Override public String toString() { return "Map_Student{" + "name='" + name + '\'' + ", age=" + age + '}'; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public int compareTo(Map_Student o) { int num = this.getName().compareTo(o.getName()); if(num == 0) return this.getAge() - o.getAge(); return num; } } class Map_Student_Comp implements Comparator<Map_Student>{ @Override public int compare(Map_Student o1, Map_Student o2) { int num = o1.getAge() - o2.getAge(); if(num == 0) return o1.getName().compareTo(o2.getName()); return num; } }
注意:集合都是可以嵌套
备案号:湘ICP备19000029号
Copyright © 2018-2019 javaxl晓码阁 版权所有