CaselessMultivaluedMap implements ExtMultivaluedMap<String, T>, Serializable { @Override public Set<Entry<String, List<T>>> entrySet() { if (entries == null) { entries = new EntrySet(); } return entries; } CaselessMultivaluedMap();  CaselessMultivaluedMap(int capacity);  CaselessMultivaluedMap(Map<String, List<T>> m); @Override void add(String key, T value); @Override void clear(); @Override boolean containsKey(Object key); @Override boolean containsValue(Object value); @Override Set<Entry<String, List<T>>> entrySet(); @Override List<T> get(Object key); @Override T getFirst(String key); @Override void addAll(String key, T... newValues); @Override void addAll(String key, List<T> valueList); @Override void addFirst(String key, T value); @Override boolean equalsIgnoreValueOrder(MultivaluedMap<String, T> otherMap); @Override List<T> getList(String key); @Override boolean isEmpty(); @Override Set<String> keySet(); @Override List<T> put(String key, List<T> value); @Override void putAll(Map<? extends String, ? extends List<T>> m); @Override void putSingle(String key, T value); @Override List<T> remove(Object key); @Override int size(); @Override Collection<List<T>> values(); @Override String toString(); @Override boolean equals(Object o); @Override int hashCode();  }
@Test public void testEntrySet() { Set<Entry<String, List<String>>> entries = map.entrySet(); map.put("k", newArrayList("a", "b")); map.put("e", newArrayList("c", "d")); map.put("Y", newArrayList("e", "f")); assertEquals(3, map.size()); assertEquals(3, entries.size()); assertTrue(entries.remove(new java.util.Map.Entry<String, List<String>>() { public String getKey() { return "E"; } public List<String> getValue() { return Arrays.asList("c", "d"); } public List<String> setValue(List<String> value) { return Arrays.asList("c", "d"); } })); assertEquals(2, map.size()); assertEquals(2, entries.size()); assertTrue(map.containsKey("K")); assertTrue(map.containsKey("y")); assertFalse(map.containsKey("e")); entries.clear(); assertEquals(0, map.size()); assertEquals(0, entries.size()); }