HashMap的特点
- HashMap是Map里面的一个实现类
- 直接使用Map里面的方法就可以了
- 特点是由键决定的:无序,不重复,无索引
- HashMap和HashSet底层原理是一样的,都是哈希表结构

LinkedHashMap
- 由键决定:有序,不重复,无索引
- 存储和取出的元素顺序一致
- 原理:底层数据结构依然是哈希表,只是每个键值对元素又额外的多一个双链表的机制记录存储的顺序
TreeMap
- TreeMap和TreeSet底层原理一样,都是红黑树结构
- 不重复,无索引,可排序
- 对键进行排序
- 默认从小到大排序
代码书写两种排序规则
- 实现Comparable接口,指定比较规则
@Override
public int compareTo(Student o) {
int i=this.getAge()-o.getAge();
i=i==0?this.getName().compareTo(o.getName()):i;
return i;
}
- 创建集合时传递Comparator比较器对象,指定比较规则
TreeMap<Integer, String> tm = new TreeMap<>(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2-o1;
}
});
统计字符串字母出现的次数
String s="aababccddacbdaac";
TreeMap<Character,Integer> map=new TreeMap<>();
for(int i=0;i<s.length();i++){
char c=s.charAt(i);
if(map.containsKey(c)){
map.put(c,map.get(c)+1);
}
else {
map.put(c,1);
}
}
System.out.println(map);