@Override public MultiMap remove(final String name) { Objects.requireNonNull(name, "name"); int h = hash(name); int i = index(h); remove0(h, i, name); return this; }
@Override public MultiMap add(String name, Iterable<String> values) { int h = hash(name); int i = index(h); for (String vstr: values) { add0(h, i, name, vstr); } return this; }
@Override public MultiMap add(final String name, final String strVal) { int h = hash(name); int i = index(h); add0(h, i, name, strVal); return this; }
@Override public List<String> getAll(final String name) { Objects.requireNonNull(name, "name"); LinkedList<String> values = new LinkedList<>(); int h = hash(name); int i = index(h); MapEntry e = entries[i]; while (e != null) { if (e.hash == h && eq(name, e.key)) { values.addFirst(e.getValue()); } e = e.next; } return values; }
@Override public MultiMap set(final String name, final Iterable<String> values) { Objects.requireNonNull(values, "values"); int h = hash(name); int i = index(h); remove0(h, i, name); for (String v: values) { if (v == null) { break; } add0(h, i, name, v); } return this; }
@Override public String get(final String name) { Objects.requireNonNull(name, "name"); int h = hash(name); int i = index(h); MapEntry e = entries[i]; String value = null; while (e != null) { if (e.hash == h && eq(name, e.key)) { value = e.getValue(); } e = e.next; } return value; }
@Override public MultiMap set(final String name, final String strVal) { int h = hash(name); int i = index(h); remove0(h, i, name); add0(h, i, name, strVal); return this; }
@Override public MultiMap remove(final String name) { Objects.requireNonNull(name, "name"); int h = hash(name); int i = index(h); remove0(h, i, name); return this; }
@Override public MultiMap add(final String name, final String strVal) { int h = hash(name); int i = index(h); add0(h, i, name, strVal); return this; }
@Override public MultiMap add(String name, Iterable<String> values) { int h = hash(name); int i = index(h); for (String vstr: values) { add0(h, i, name, vstr); } return this; }
@Override public List<String> getAll(final String name) { Objects.requireNonNull(name, "name"); LinkedList<String> values = new LinkedList<>(); int h = hash(name); int i = index(h); MapEntry e = entries[i]; while (e != null) { if (e.hash == h && eq(name, e.key)) { values.addFirst(e.getValue()); } e = e.next; } return values; }
@Override public String get(final String name) { Objects.requireNonNull(name, "name"); int h = hash(name); int i = index(h); MapEntry e = entries[i]; String value = null; while (e != null) { if (e.hash == h && eq(name, e.key)) { value = e.getValue(); } e = e.next; } return value; }
@Override public MultiMap set(final String name, final Iterable<String> values) { Objects.requireNonNull(values, "values"); int h = hash(name); int i = index(h); remove0(h, i, name); for (String v: values) { if (v == null) { break; } add0(h, i, name, v); } return this; }
@Override public MultiMap set(final String name, final String strVal) { int h = hash(name); int i = index(h); remove0(h, i, name); add0(h, i, name, strVal); return this; }