???????????????????????

    void transfer(Entry[] newTable)
    {
        Entry[] src = table;
        int newCapacity = newTable.length;
        //??????未??????????
        //  ??OldTable???????????????????NewTable??
        for (int j = 0; j < src.length; j++) {
            Entry e = src[j];
            if (e != null) {
                src[j] = null;
                do {
                    Entry next = e.next;
                    int i = indexFor(e.hash?? newCapacity);
                    e.next = newTable[i];
                    newTable[i] = e;
                    e = next;
                } while (e != null);
            }
        }
    }

??????????????????????????????????????????

??????????ReHash?????

????????????????????

?????? ????????????hash?????????key mod ??卤???小????????????????

?????? ???????old hash ??????械?Hash???size=2?? ????key = 3?? 7?? 5????mod 2????????table[1]???????

?????? ??????????????????Hash?? resize??4????????械? ????rehash?????

?????????渭?Rehash

????1???????????????????????煤?????????????????

?????????????????????? transfer?????械????????

    do {
        Entry next = e.next; // <--??????????械??????????????
        int i = indexFor(e.hash?? newCapacity);
        e.next = newTable[i];
        newTable[i] = e;
        e = next;
    } while (e != null);

???????????????????????????????????????????????

??????????Thread1?? e ?????key(3)????next?????key(7)??????????rehash?????????????????????????????????????????????