private V remove0(int h, int i, K name) {
        HeaderEntry<K, V> e = entries[i];
        if (e == null) {
            return null;
        }

        V value = null;
        HeaderEntry<K, V> next = e.next;
        while (next != null) {
            if (next.hash == h && hashingStrategy.equals(name, next.key)) {
                value = next.value;
                e.next = next.next;
                next.remove();
                --size;
            } else {
                e = next;
            }

            next = e.next;
        }

        e = entries[i];
        if (e.hash == h && hashingStrategy.equals(name, e.key)) {
            if (value == null) {
                value = e.value;
            }
            entries[i] = e.next;
            e.remove();
            --size;
        }

        return value;
    }
private V remove0 ( int h , int i , K name ) { HeaderEntry < K , V > e = entries [ i ] ; if ( e == null ) { return null ; } V value = null ; HeaderEntry < K , V > next = e . next ; while ( next != null ) { if ( next . hash == h && hashingStrategy . equals ( name , next . key ) ) { value = next . value ; e . next = next . next ; next . remove ( ) ; -- size ; } else { e = next ; } next = e . next ; } e = entries [ i ] ; if ( e . hash == h && hashingStrategy . equals ( name , e . key ) ) { if ( value == null ) { value = e . value ; } entries [ i ] = e . next ; e . remove ( ) ; -- size ; } return value ; }
@return the first value inserted whose hash code equals {@code h} and whose name is equal to {@code name}.