什么是Map数据结构
- 底层就是⼀个数组结构,数组中的每⼀项⼜是⼀个链表,即数组和链表的结合体
- Table是数组,数组的元素是Entry
- Entry元素是⼀个key-value键值对,它持有⼀个指向下⼀个 Entry元素的引⽤,table数组的每个Entry元素同时也作为当前Entry链表的⾸节点,也指向了该链表的下⼀个Entry元素
常⻅的实现类
- HashMap
⼀个散列桶(数组和链表),它存储的内容是键值对(key-value)映射是基于hashing的原理,使⽤put(key, value)存储对象到HashMap中,使⽤get(key)从HashMap中获取对象。当put()⽅法传递键和值时,会先对键调⽤hashCode()⽅法,计算并返回的hashCode是⽤于找到Map数组的bucket位置来储存Entry对象的,是⾮线程安全的,所以HashMap操作速度很快 - TreeMap
在数据的存储过程中,能够⾃动对数据进⾏排序,实现了SotredMap接⼝,它是有序的集合
TreeMap使⽤的存储结构是平衡⼆叉树,也称为红⿊树
默认排序规则:按照key的字典顺序来排序(升序),也可以⾃定义排序规则,要实现Comparator接⼝
说些什么吧!