- HashMap就是一张hash表,键和值都没有排序。
HashMap是非线程安全的,只用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMap。
HashMap 实现了Serializable接口,因此它支持序列化。
HashMap 容量设为不小于指定容量的2的幂次方,且最大值不能超过2的30次方。
HashMap的存储结构
紫色部分即代表哈希表本身(其实是一个数组),数组的每个元素都是一个单链表的头节点,链表是用来解决hash地址冲突的,如果不同的key映射到了数组的同一位置处,就将其放入单链表中保存。
HashMap中put和get的源码: