HashMap
概述
1.位于java.util包需要导包
2.起始版本1.2,替代了Hashtable
3.HashMap是线程不安全的
4.HashMap是Map接口的子类属于双列集合 以键值对(key,value)的形式创建
5.HashMap在jdk1.7前数据结构是数组+链表 在jdk1.8后是数组+链表+红黑树
6.HashMap在创建时会创建一个容量为16的数组,加载因子是0.75(数组长度*0.75),扩容2倍 ,当数组长度大于等于64且链表大于8的时候会触发红黑树.
7.HashMap添加时会根据添加数据的Hash值和数组长度进行寻址算法进行索引添加,如果多个数据添加到通一个索引会进行equals比较内容,如果内容不同将启用链表挂在索引下,内容相同则不添加
8.HashMap底层使用了Hash值进行存储,所以不能存储重复数据,这里不能存储重复数据是指键(key)值(value)可以重复不过会覆盖之前的值
9.不能操作索引,因为存取无序
构造方法
HashMap<String, String> map = new HashMap<>();
常用方法
HashMap<String, String> map = new HashMap<>();
map.put("张三","男");
map.put("李四","男");
map.put("张三","女");//这里进行了覆盖,所以打印结果为 张三 女
HashMap<String, String> map = new HashMap<>();
map.put("张三","男");
map.put("李四","男");
map.remove("李四");//删除李四
HashMap<String, String> map = new Ha