HashMap 简单理解

HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。
HashMap 继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。
HashMap 的实现不是同步的,这意味着它不是线程安全的,但可以用 Collections的synchronizedMap方法使HashMap具有线程安全的能力。 它的key、value都可以为null 。此外,HashMap中的映射不是有序的。
HashMap 的实例有两个参数影响其性能:“初始容量” 和 “加载因子”。 初始容量默认是16。默认加载因子是 0.75,  这是在时间和空间成本上寻求一种折衷。加载因子过高虽然减少了空间开销,但同时也增加了查询成本.

HashMap是数组+链表+红黑树(JDK1.8增加了红黑树部分)实现的,当链表长度太长(默认超过8)时,链表就转换为红黑树.

*处理哈希冲突的方法:

解决HashMap一般没有什么特别好的方式,要不扩容重新hash要不优化冲突的链表结构


HashMap的put方法:

HashMap 简单理解_第1张图片

你可能感兴趣的:(java)