Map接口 :用来存储键值对
常用的实现类有:HashMap、TreeMap 、HashTable、Properties
HashMap<key, value> hashMap
常用方法
Map m = new HashMap<>();
m.put(1,"lisi");
m.put(2,"zhangsan"); //成对添加元素
m.size()
m.isEmpty
m.get(key)
m.remove(key)
m.containskey(key)
m.containsValue(Value)
m.putAll(Map m2)
键不能重复 如果重复
m.put(1,"zhangsan");
m.put(1,"lisi");
则新的覆盖旧的
根据key 的equals方法进行比较 如果equals 则重复 覆盖
HashMap
底层 采用了哈希表
哈希表的本质是数据+链表
数组:空间连续 寻地址容易 查询快 增删慢
链表 空间不连续 查询慢 增删快
static class Node<K,V> implements Map.Entry<K,V> {
final int hash;
final K key;
V value;
Node<K,V> next;//单向链表
将链表存储到数组
transient Node<K,V>[] table;
存储过程: