HashMap是无序的,这里无序的意思是你当尝试向HashMap中存入int类型的key,可以看到在输出的时候会自动排序我们都知道,HashMap是数组加链表实现的,在链表长度大于8的时候将链表转化为红黑树HashMap的默认数组长度为16,默认负载因子是0.75,意思就是当数组内不为null的元素大于(数组长度*负载因子)的时候就会拓容数组如果数组长度和负载因子都是默认值,那当在数组中存入第13个元素后就会拓容再读一下put方法和hash方法17行:(n - 1) & hashn-1就是数组的length-1,现在数组长度是16,15&hash,例如,现在存入key为1,15转成二进制为11

关于Java HashMap自动排序的简单剖析

关于Java HashMap自动排序的简单剖析

关于Java HashMap自动排序的简单剖析

关于Java HashMap自动排序的简单剖析

关于Java HashMap自动排序的简单剖析

关于Java HashMap自动排序的简单剖析