Java8 哈希映射在返回常量哈希码的情况下重新哈希处理
根据下面的代码,哈希映射的初始dafault容量为16,LF为0.75,因此当我输入第13个元素时,应该进行重新哈希处理,并且由于我提供了一个恒定的哈希码,因此它在内部维护一个链接列表以维护插入顺序。因此,直到第10个元素,它都按预期工作,但是当我输入第11个元素时,它会随机排列顺序。任何人都可以帮助我理解为什么它只发生在第11个元素插入的时候。
class A{
    int a;
    A(int a){
        this.a = a;
    }
    @Override
    public int hashCode() {
        return 7;
    }
    @Override
    public String toString() {
        return "" + a + "";
    }
}
class Base {
    public static void main(String[] args) {
        Map<Object, Integer> m = new HashMap<Object, Integer>();
        m.put(new A(1), 1);
        m.put(new A(2), 1);
        m.put(new A(3), 1);
        m.put(new A(4), 1);
        m.put(new A(5), 1);
        m.put(new A(6), 1);
        m.put(new A(7), 1);
        m.put(new A(8), 1);
        m.put(new A(9), 1);
        m.put(new A(10), 1);
        //m.put(new A(11), 1);
        System.out.println(m);
    }
}
我得到的输出直到第10个元素:
{1=1, 2=1, 3=1, 4=1, 5=1, 6=1, 7=1, 8=1, 9=1, 10=1}
输入第11个元素后获得的输出:
{4=1, 1=1, 2=1, 3=1, 5=1, 6=1, 7=1, 8=1, 9=1, 10=1, 11=1}
它应该保持插入顺序,或者如果它在内部使用RB树,那么在这种情况下,它在这里使用哪种遍历?