Map
Map中常见API:
Hashmap:数组+链表
jdk8以前:如果添加键里面的数据一样,他就会覆盖原有的entry对象。put覆盖功能。
jdk8以后:重复内容直接接在同位置下形成链表,如下图
linkedhashmap:
treemap:
自动按照升序排列
用比较器来确定内容的升序和降序
package mymap.linkedhashmap;
import java.util.Comparator;
import java.util.TreeMap;
public class text {
public static void main(String[] args) {
// treemap 自动按照键的升序排列
// double都是按照升序排列
// string按照ascll表排序的、
//用比较器来进行排序
TreeMap<Integer,String> tm = new TreeMap<>(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
// o1表示要添加的数,o2表示在红黑树中已经存在的值
return o2 - o1;
}
});
tm.put(2,"deng");
tm.put(1,"huo");
tm.put(3,"shui");
System.out.println(tm);
}
}
student中重写了方法。满足题目要求
在实际开发中 无序排序用hashmap
需要输出有序用linkedhashmap
需要排序用treemap
总结 :
底层源码:
hashmap
面试总结: