1 hash map 和hash table基于哈希结构,是一个双列集合(数据一存存一对),存取数据不一致
2 可以保证键的唯一性,但是要求作为键的类中拥有hashCode和equals两个方法,且和hashCode用来哈希的属性有关(使用alt+insert可以快速传入),否则不保证键的唯一性
3 只有键是哈希结构,值不是,因为值不是唯一的
4 哈希结构就是数组加链表,数组每个索引对应一个哈希值,每个数组索引下挂着一个链表

5 当我们往hashmap中添加数据时,会逐个调用hashCode方法计算哈希值,然后在数组中找到对应 的索引,如果该索引已有数据,再调用equals,比较具体属性值,如果不一致,后来的值会以链表的形式挂在前一个值的下面,如果属性值相同,则覆盖原有的值
6 hashmap在jdk 1.2后可用,允许存null,不同步(线程不安全,但效率高),hashtable在jdk1.0可用,不能存null,同步(线程安全,但效率低)
7 jdk1.8后,当链表长度达到一定程度,就会转为二叉树,便于提高查询速度
1
1
浙公网安备 33010602011771号