### Question:
ConcurrentHashMap implements ConcurrentMap<K, V> { @SuppressWarnings("unchecked") public V put(K key, V value) { if (key == null || value == null) throw new NullPointerException(); return (V)internalPut(key, value); } ConcurrentHashMap();  ConcurrentHashMap(int initialCapacity);  ConcurrentHashMap(Map<? extends K, ? extends V> m);  ConcurrentHashMap(int initialCapacity, float loadFactor);  ConcurrentHashMap(int initialCapacity,
                             float loadFactor, int concurrencyLevel); static KeySetView<K,Boolean> newKeySet(); static KeySetView<K,Boolean> newKeySet(int initialCapacity); boolean isEmpty(); int size(); long mappingCount(); @SuppressWarnings("unchecked") V get(Object key); @Deprecated void recalculateSize(final K k); List<V> getRandomValues(int amount); @SuppressWarnings("unchecked") V getValueOrDefault(Object key, V defaultValue); boolean containsKey(Object key); boolean containsValue(Object value); boolean contains(Object value); @SuppressWarnings("unchecked") V put(K key, V value); @SuppressWarnings("unchecked") V putIfAbsent(K key, V value); void putAll(Map<? extends K, ? extends V> m); @SuppressWarnings("unchecked") V remove(Object key); boolean remove(Object key, Object value); boolean replace(K key, V oldValue, V newValue); @SuppressWarnings("unchecked") V replace(K key, V value); void clear(); KeySetView<K,V> keySet(); KeySetView<K,V> keySet(V mappedValue); ValuesView<K,V> values(); Set<Map.Entry<K,V>> entrySet(); Enumeration<K> keys(); Enumeration<V> elements(); Spliterator<K> keySpliterator(); Spliterator<V> valueSpliterator(); Spliterator<Map.Entry<K,V>> entrySpliterator(); int hashCode(); String toString(); boolean equals(Object o);  }### Answer:
@Test public void testRandomValuesWithObjects() { ConcurrentHashMap<Object, KeyHolder<Object>> map = new ConcurrentHashMap<Object, KeyHolder<Object>>(); for(int i = 0; i < ENTRIES; i++) { final Object o = new Object(); map.put(o, new KeyHolder<Object>(o)); } assertThings(map); }