我们知道在java中,hashmap在一定条件下会转换成红黑树,但是当我们在这个hashmap中移除某个元素的时候,为了保持树的连续性,就会涉及到重排序。此时的重排序就是把这些元素从新进行排序。
我们知道hash都有槽位,那么在重新排序的时候,一般我们的理解是需要把元素按照槽位重新计算。再进行元素的挪动。但是在java8这个红黑树的结构中,重排序是不需要重新按照槽位计算hashcode码的,他只是把当前的原始放在: hashmap总长度+当前元素所在的hashmap中的pos 的位置上。
我们知道在java中,hashmap在一定条件下会转换成红黑树,但是当我们在这个hashmap中移除某个元素的时候,为了保持树的连续性,就会涉及到重排序。此时的重排序就是把这些元素从新进行排序。
我们知道hash都有槽位,那么在重新排序的时候,一般我们的理解是需要把元素按照槽位重新计算。再进行元素的挪动。但是在java8这个红黑树的结构中,重排序是不需要重新按照槽位计算hashcode码的,他只是把当前的原始放在: hashmap总长度+当前元素所在的hashmap中的pos 的位置上。
还没有评论,来说两句吧...