@Override
    public T add(K name, V value) {
        validateName(nameValidator, true, name);
        validateValue(valueValidator, name, value);
        checkNotNull(value, "value");
        int h = hashingStrategy.hashCode(name);
        int i = index(h);
        add0(h, i, name, value);
        return thisT();
    }
@Test
    public void headersWithSameNamesButDifferentValuesShouldNotBeEquivalent() {
        TestDefaultHeaders headers1 = newInstance();
        headers1.add(of("name1"), of("value1"));
        TestDefaultHeaders headers2 = newInstance();
        headers1.add(of("name1"), of("value2"));
        assertNotEquals(headers1, headers2);
    }