### Question:
AbstractMultimap implements Multimap<K, V> { @Override public Collection<V> get( K key ) { Collection<V> collection = data.get(key); if (collection == null) { collection = createCollection(); } return wrapCollection(key, collection); } protected  AbstractMultimap( Map<K, Collection<V>> entries ); @Override int size(); @Override boolean isEmpty(); @Override boolean containsKey( K key ); @Override boolean containsValue( Object value ); @Override boolean containsEntry( Object key,
                                  Object value ); @Override Collection<V> get( K key ); @Override boolean put( K key,
                        V value ); @Override boolean remove( K key,
                           V value ); @Override Collection<V> removeAll( K key ); @Override int hashCode(); @Override boolean equals( Object obj ); @Override String toString(); @Override Set<K> keySet(); @Override void clear(); @Override Map<K, Collection<V>> asMap(); @Override Collection<V> values(); @Override Collection<Entry<K, V>> entries();  }### Answer:
@Test public void shouldCompareEqualityOfEmptyValueCollection() { Collection<String> collection = multimap.get(keys[0]); assertNotEquals(this, collection); assertNotEquals(collection, this); if (collection instanceof List<?>) { assertEquals(Collections.emptyList(), collection); assertEquals(collection, Collections.emptyList()); } else if (collection instanceof Set<?>) { assertEquals(Collections.emptySet(), collection); assertEquals(collection, Collections.emptySet()); } }