### Question:
HashMap extends Map<K, V> { @Override public V get(K key) { HashMapEntry<K, V> m = getEntry(key); if (m != null) { return m.value; } return SystemUtils.<V>defaultValue(); } HashMap();  HashMap(int capacity);  HashMap(int capacity, float loadFactor);  HashMap(Map<K, V> map); @Override void clear(); @Override boolean containsKey(K key); @Override boolean containsValue(V value); @Override Set<MapEntry<K, V>> entrySet(); @Override V get(K key); @Override boolean isEmpty(); @Override Set<K> keySet(); @Override V put(K key, V value); @Override void putAll(Map<? extends K, ? extends V> map); @Override V remove(K key); @Override int size(); @Override Collection<V> values();  }### Answer:
@Test public void testGet() { assertNull("Get returned non-null for non existent key", hm.get("T")); hm.put("T", "HELLO"); assertEquals("Get returned incorrect value for existing key", "HELLO", hm.get("T")); ReusableKey k = new ReusableKey(); HashMap<ReusableKey, String> map = new HashMap<ReusableKey, String>(); k.setKey(1); map.put(k, "value1"); k.setKey(18); assertNull(map.get(k)); k.setKey(17); assertNull(map.get(k)); }