根据下面的代码,hashmap初始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), …Run Code Online (Sandbox Code Playgroud)