@Nullable
    private String removeAndNotify(int h, int i, IN_NAME name, boolean notifyChange) {
        Entry e = entries[i];
        if (e == null) {
            return null;
        }

        String value = null;
        Entry next = e.next;
        while (next != null) {
            if (next.hash == h) {
                final NAME currentName = next.key;
                if (currentName != null && nameEquals(currentName, name)) {
                    value = next.value;
                    e.next = next.next;
                    next.remove();
                    --size;
                    if (notifyChange) {
                        onChange(currentName);
                    }
                } else {
                    e = next;
                }
            } else {
                e = next;
            }

            next = e.next;
        }

        e = entries[i];
        if (e.hash == h) {
            final NAME currentName = e.key;
            if (currentName != null && nameEquals(currentName, name)) {
                if (value == null) {
                    value = e.value;
                }
                entries[i] = e.next;
                e.remove();
                --size;
                if (notifyChange) {
                    onChange(currentName);
                }
            }
        }

        return value;
    }
Removes all the entries whose hash code equals {@code h} and whose name is equal to {@code name}.

@return the first value inserted, or {@code null} if there is no such entry.
core/src/main/java/com/linecorp/armeria/common/StringMultimap.java