Map 详解
1.底层:数组加链表(散列表)
2.key-value的形式存储数据
key是不允许有重复值
value是允许有重复值
3.可以通过key,获得value
4.遍历方式
迭代器:keySet() 返回此映射中包含的键的 Set 视图。
迭代键值对:entrySet()
5.常见方法:
put()添加
get() 查询
remove() 删除
6.存储过程:
1.计算key的hashCode值,确定位置
2.如果位置上有元素,使用equals() 方法判断是否重复
3.如果元素相同,不存入
4.如果元素不相同,遍历下一个节点,再根据equals()方法判断是否相同,判断到链表末尾,如果都没有重复的话,添加到链表末尾。
7.Map三大特点:
1.包含键值对
2.键唯一
3.键对应唯一的值
8.分类
HashMap:(无序)
1.hashmap是基于哈希表的map接口的非同步实现
2.底层是(哈希表)
3.线程不安全,效率高
4..key(只允许一个null)和vaule允许有null值
子类:LinkedHashMap 1.底层数据结构:链表+哈希表
2.有序,按照插入顺序排序,
3.线程不安全,效率高
4.允许有null值
TreeMap:
1.底层使用的数据结构是二叉树(红黑树),线程不同步
2.作用:
可以用于给map集合中的键进行排序 (1)比较器排序 (2)自然排序
3.有序,根据key排序
4.key不允许为空
HashTable:
1.底层数据结构是哈希表
2.无序
3.线程安全,效率低
4.key和value都不允许null值
HashMap和HashTable的区别
有序和无序
HashMap和TreeMap的区别
有序无序,null值