hashmap中有一个参数叫做负载因子,代表当hashmap容量使用率达到一定比率时触发扩容。1.8版本后hashmap由数组加链表和红黑树组成。数组的每个元素是一个链表或者红黑树的根节点。对于数组元素下是链表还是红黑树是由对应数据结构深度决定,当链表深度超过8会转换成红黑树,当红黑树深度小于3会退化成链表。其实这样的转换是为了提高查询效率。那么其实对于负载因子的计算就是判断数组中有多少元素被使用。当使用比率超过负载因子就会触发扩容。更详细的源码解读见我的github地址,github.com/dncba/Learn-More-Do-Less 中jdk源码解读相关
1 2

相关推荐

牛客网
牛客企业服务