# Print output for @column tags ?>
Developers

- Design
- Develop
- Distribute

Developer Console

## Most visited

## Recently visited

## Results for

Summary: Nested Classes | Protected Ctors | Methods | Protected Methods | Inherited Methods

# AbstractMap

`public abstract class AbstractMap`
`extends Object` `implements Map<K, V>`

java.lang.Object
↳ | java.util.AbstractMap<K, V>

Known direct subclasses ConcurrentHashMap<K, V>, ConcurrentSkipListMap<K, V>, EnumMap<K extends Enum<K>, V>, HashMap<K, V>, IdentityHashMap<K, V>, TreeMap<K, V>, WeakHashMap<K, V>
ConcurrentHashMap<K, V> | A hash table supporting full concurrency of retrievals and high expected concurrency for updates.
ConcurrentSkipListMap<K, V> | A scalable concurrent `ConcurrentNavigableMap` implementation.
EnumMap<K extends Enum<K>, V> | A specialized `Map` implementation for use with enum type keys.
HashMap<K, V> | Hash table based implementation of the `Map` interface.
IdentityHashMap<K, V> | This class implements the `Map` interface with a hash table, using reference-equality in place of object-equality when comparing keys (and values).
TreeMap<K, V> | A Red-Black tree based `NavigableMap` implementation.
WeakHashMap<K, V> | Hash table based implementation of the `Map` interface, with weak keys.

Known indirect subclasses LinkedHashMap<K, V>
LinkedHashMap<K, V> | Hash table and linked list implementation of the `Map` interface, with predictable iteration order.

This class provides a skeletal implementation of the `Map` interface, to minimize the effort required to implement this interface.

To implement an unmodifiable map, the programmer needs only to extend this class and provide an implementation for the `entrySet` method, which returns a set-view of the map's mappings. Typically, the returned set will, in turn, be implemented atop `AbstractSet`. This set should not support the `add` or `remove` methods, and its iterator should not support the `remove` method.

To implement a modifiable map, the programmer must additionally override this class's `put` method (which otherwise throws an `UnsupportedOperationException`), and the iterator returned by `entrySet().iterator()` must additionally implement its `remove` method.

The programmer should generally provide a void (no argument) and map constructor, as per the recommendation in the `Map` interface specification.

The documentation for each non-abstract method in this class describes its implementation in detail. Each of these methods may be overridden if the map being implemented admits a more efficient implementation.

This class is a member of the Java Collections Framework.

See also:

- `Map`
- `Collection`

## Summary

### Nested classes
`class` | `AbstractMap.SimpleEntry<K, V>` An Entry maintaining a key and a value.
`class` | `AbstractMap.SimpleImmutableEntry<K, V>` An Entry maintaining an immutable key and value.

### Protected constructors
`AbstractMap()` Sole constructor.

### Public methods
`void` | `clear()` Removes all of the mappings from this map (optional operation).
`boolean` | `containsKey(Object key)` Returns `true` if this map contains a mapping for the specified key.
`boolean` | `containsValue(Object value)` Returns `true` if this map maps one or more keys to the specified value.
`abstract Set<Entry<K, V>>` | `entrySet()` Returns a `Set` view of the mappings contained in this map.
`boolean` | `equals(Object o)` Compares the specified object with this map for equality.
`V` | `get(Object key)` Returns the value to which the specified key is mapped, or `null` if this map contains no mapping for the key.
`int` | `hashCode()` Returns the hash code value for this map.
`boolean` | `isEmpty()` Returns `true` if this map contains no key-value mappings.
`Set<K>` | `keySet()` Returns a `Set` view of the keys contained in this map.
`V` | `put(K key, V value)` Associates the specified value with the specified key in this map (optional operation).
`void` | `putAll(Map<? extends K, ? extends V> m)` Copies all of the mappings from the specified map to this map (optional operation).
`V` | `remove(Object key)` Removes the mapping for a key from this map if it is present (optional operation).
`int` | `size()` Returns the number of key-value mappings in this map.
`String` | `toString()` Returns a string representation of this map.
`Collection<V>` | `values()` Returns a `Collection` view of the values contained in this map.

### Protected methods
`Object` | `clone()` Returns a shallow copy of this `AbstractMap` instance: the keys and values themselves are not cloned.

### Inherited methods
From class `java.lang.Object`
`Object` | `clone()` Creates and returns a copy of this object.
`boolean` | `equals(Object obj)` Indicates whether some other object is "equal to" this one.
`void` | `finalize()` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
`final Class<?>` | `getClass()` Returns the runtime class of this `Object`.
`int` | `hashCode()` Returns a hash code value for the object.
`final void` | `notify()` Wakes up a single thread that is waiting on this object's monitor.
`final void` | `notifyAll()` Wakes up all threads that are waiting on this object's monitor.
`String` | `toString()` Returns a string representation of the object.
`final void` | `wait(long timeout, int nanos)` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object, or some other thread interrupts the current thread, or a certain amount of real time has elapsed.
`final void` | `wait(long timeout)` Causes the current thread to wait until either another thread invokes the `notify()` method or the `notifyAll()` method for this object, or a specified amount of time has elapsed.
`final void` | `wait()` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object.
From interface `java.util.Map`
`abstract void` | `clear()` Removes all of the mappings from this map (optional operation).
`default V` | `compute(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction)` Attempts to compute a mapping for the specified key and its current mapped value (or `null` if there is no current mapping).
`default V` | `computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction)` If the specified key is not already associated with a value (or is mapped to `null`), attempts to compute its value using the given mapping function and enters it into this map unless `null`.
`default V` | `computeIfPresent(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction)` If the value for the specified key is present and non-null, attempts to compute a new mapping given the key and its current mapped value.
`abstract boolean` | `containsKey(Object key)` Returns `true` if this map contains a mapping for the specified key.
`abstract boolean` | `containsValue(Object value)` Returns `true` if this map maps one or more keys to the specified value.
`static <K, V> Entry<K, V>` | `entry(K k, V v)` Returns an immutable `Entry` containing the given key and value.
`abstract Set<Entry<K, V>>` | `entrySet()` Returns a `Set` view of the mappings contained in this map.
`abstract boolean` | `equals(Object o)` Compares the specified object with this map for equality.
`default void` | `forEach(BiConsumer<? super K, ? super V> action)` Performs the given action for each entry in this map until all entries have been processed or the action throws an exception.
`abstract V` | `get(Object key)` Returns the value to which the specified key is mapped, or `null` if this map contains no mapping for the key.
`default V` | `getOrDefault(Object key, V defaultValue)` Returns the value to which the specified key is mapped, or `defaultValue` if this map contains no mapping for the key.
`abstract int` | `hashCode()` Returns the hash code value for this map.
`abstract boolean` | `isEmpty()` Returns `true` if this map contains no key-value mappings.
`abstract Set<K>` | `keySet()` Returns a `Set` view of the keys contained in this map.
`default V` | `merge(K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction)` If the specified key is not already associated with a value or is associated with null, associates it with the given non-null value.
`static <K, V> Map<K, V>` | `of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5)` Returns an immutable map containing five mappings.
`static <K, V> Map<K, V>` | `of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4)` Returns an immutable map containing four mappings.
`static <K, V> Map<K, V>` | `of(K k1, V v1)` Returns an immutable map containing a single mapping.
`static <K, V> Map<K, V>` | `of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8)` Returns an immutable map containing eight mappings.
`static <K, V> Map<K, V>` | `of(K k1, V v1, K k2, V v2)` Returns an immutable map containing two mappings.
`static <K, V> Map<K, V>` | `of(K k1, V v1, K k2, V v2, K k3, V v3)` Returns an immutable map containing three mappings.
`static <K, V> Map<K, V>` | `of()` Returns an immutable map containing zero mappings.
`static <K, V> Map<K, V>` | `of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9)` Returns an immutable map containing nine mappings.
`static <K, V> Map<K, V>` | `of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6)` Returns an immutable map containing six mappings.
`static <K, V> Map<K, V>` | `of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7)` Returns an immutable map containing seven mappings.
`static <K, V> Map<K, V>` | `of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10)` Returns an immutable map containing ten mappings.
`static <K, V> Map<K, V>` | `ofEntries(Entry...<? extends K, ? extends V> entries)` Returns an immutable map containing keys and values extracted from the given entries.
`abstract V` | `put(K key, V value)` Associates the specified value with the specified key in this map (optional operation).
`abstract void` | `putAll(Map<? extends K, ? extends V> m)` Copies all of the mappings from the specified map to this map (optional operation).
`default V` | `putIfAbsent(K key, V value)` If the specified key is not already associated with a value (or is mapped to `null`) associates it with the given value and returns `null`, else returns the current value.
`default boolean` | `remove(Object key, Object value)` Removes the entry for the specified key only if it is currently mapped to the specified value.
`abstract V` | `remove(Object key)` Removes the mapping for a key from this map if it is present (optional operation).
`default boolean` | `replace(K key, V oldValue, V newValue)` Replaces the entry for the specified key only if currently mapped to the specified value.
`default V` | `replace(K key, V value)` Replaces the entry for the specified key only if it is currently mapped to some value.
`default void` | `replaceAll(BiFunction<? super K, ? super V, ? extends V> function)` Replaces each entry's value with the result of invoking the given function on that entry until all entries have been processed or the function throws an exception.
`abstract int` | `size()` Returns the number of key-value mappings in this map.
`abstract Collection<V>` | `values()` Returns a `Collection` view of the values contained in this map.

## Protected constructors

### AbstractMap

    protected AbstractMap ()

Sole constructor. (For invocation by subclass constructors, typically implicit.)

## Public methods

### clear

    public void clear ()

Removes all of the mappings from this map (optional operation). The map will be empty after this call returns.

##### Implementation Requirements:

- This implementation calls `entrySet().clear()`.

  Note that this implementation throws an `UnsupportedOperationException` if the `entrySet` does not support the `clear` operation.

Throws
`UnsupportedOperationException` |

### containsKey

    public boolean containsKey (Object key)

Returns `true` if this map contains a mapping for the specified key. More formally, returns `true` if and only if this map contains a mapping for a key `k` such that `Objects.equals(key, k)`. (There can be at most one such mapping.)

##### Implementation Requirements:

- This implementation iterates over `entrySet()` searching for an entry with the specified key. If such an entry is found, `true` is returned. If the iteration terminates without finding such an entry, `false` is returned. Note that this implementation requires linear time in the size of the map; many implementations will override this method.

Parameters
`key` | `Object`: key whose presence in this map is to be tested

Returns
`boolean` | `true` if this map contains a mapping for the specified key

Throws
`ClassCastException` |
`NullPointerException` |

### containsValue

    public boolean containsValue (Object value)

Returns `true` if this map maps one or more keys to the specified value. More formally, returns `true` if and only if this map contains at least one mapping to a value `v` such that `Objects.equals(value, v)`. This operation will probably require time linear in the map size for most implementations of the `Map` interface.

##### Implementation Requirements:

- This implementation iterates over `entrySet()` searching for an entry with the specified value. If such an entry is found, `true` is returned. If the iteration terminates without finding such an entry, `false` is returned. Note that this implementation requires linear time in the size of the map.

Parameters
`value` | `Object`: value whose presence in this map is to be tested

Returns
`boolean` | `true` if this map maps one or more keys to the specified value

Throws
`ClassCastException` |
`NullPointerException` |

### entrySet

    public abstract Set<Entry<K, V>> entrySet ()

Returns a `Set` view of the mappings contained in this map. The set is backed by the map, so changes to the map are reflected in the set, and vice-versa. If the map is modified while an iteration over the set is in progress (except through the iterator's own `remove` operation, or through the `setValue` operation on a map entry returned by the iterator) the results of the iteration are undefined. The set supports element removal, which removes the corresponding mapping from the map, via the `Iterator.remove`, `Set.remove`, `removeAll`, `retainAll` and `clear` operations. It does not support the `add` or `addAll` operations.

Returns
`Set<Entry<K, V>>` | a set view of the mappings contained in this map

### equals

    public boolean equals (Object o)

Compares the specified object with this map for equality. Returns `true` if the given object is also a map and the two maps represent the same mappings. More formally, two maps `m1` and `m2` represent the same mappings if `m1.entrySet().equals(m2.entrySet())`. This ensures that the `equals` method works properly across different implementations of the `Map` interface.

##### Implementation Requirements:

- This implementation first checks if the specified object is this map; if so it returns `true`. Then, it checks if the specified object is a map whose size is identical to the size of this map; if not, it returns `false`. If so, it iterates over this map's `entrySet` collection, and checks that the specified map contains each mapping that this map contains. If the specified map fails to contain such a mapping, `false` is returned. If the iteration completes, `true` is returned.

Parameters
`o` | `Object`: object to be compared for equality with this map

Returns
`boolean` | `true` if the specified object is equal to this map

### get

    public V get (Object key)

Returns the value to which the specified key is mapped, or `null` if this map contains no mapping for the key.

More formally, if this map contains a mapping from a key `k` to a value `v` such that `Objects.equals(key, k)`, then this method returns `v`; otherwise it returns `null`. (There can be at most one such mapping.)

If this map permits null values, then a return value of `null` does not necessarily indicate that the map contains no mapping for the key; it's also possible that the map explicitly maps the key to `null`. The `containsKey` operation may be used to distinguish these two cases.

##### Implementation Requirements:

- This implementation iterates over `entrySet()` searching for an entry with the specified key. If such an entry is found, the entry's value is returned. If the iteration terminates without finding such an entry, `null` is returned. Note that this implementation requires linear time in the size of the map; many implementations will override this method.

Parameters
`key` | `Object`: the key whose associated value is to be returned

Returns
`V` | the value to which the specified key is mapped, or `null` if this map contains no mapping for the key

Throws
`ClassCastException` |
`NullPointerException` |

### hashCode

    public int hashCode ()

Returns the hash code value for this map. The hash code of a map is defined to be the sum of the hash codes of each entry in the map's `entrySet()` view. This ensures that `m1.equals(m2)` implies that `m1.hashCode()==m2.hashCode()` for any two maps `m1` and `m2`, as required by the general contract of `Object#hashCode`.

##### Implementation Requirements:

- This implementation iterates over `entrySet()`, calling `Map.Entry#hashCode` on each element (entry) in the set, and adding up the results.

Returns
`int` | the hash code value for this map

See also:

- `Map.Entry.hashCode()`
- `Object.equals(Object)`
- `Set.equals(Object)`

### isEmpty

    public boolean isEmpty ()

Returns `true` if this map contains no key-value mappings.

##### Implementation Requirements:

- This implementation returns `size() == 0`.

Returns
`boolean` | `true` if this map contains no key-value mappings

### keySet

    public Set<K> keySet ()

Returns a `Set` view of the keys contained in this map. The set is backed by the map, so changes to the map are reflected in the set, and vice-versa. If the map is modified while an iteration over the set is in progress (except through the iterator's own `remove` operation), the results of the iteration are undefined. The set supports element removal, which removes the corresponding mapping from the map, via the `Iterator.remove`, `Set.remove`, `removeAll`, `retainAll`, and `clear` operations. It does not support the `add` or `addAll` operations.

##### Implementation Requirements:

- This implementation returns a set that subclasses `AbstractSet`. The subclass's iterator method returns a "wrapper object" over this map's `entrySet()` iterator. The `size` method delegates to this map's `size` method and the `contains` method delegates to this map's `containsKey` method.

  The set is created the first time this method is called, and returned in response to all subsequent calls. No synchronization is performed, so there is a slight chance that multiple calls to this method will not all return the same set.

Returns
`Set<K>` | a set view of the keys contained in this map

### put

    public V put (K key,
                    V value)

Associates the specified value with the specified key in this map (optional operation). If the map previously contained a mapping for the key, the old value is replaced by the specified value. (A map `m` is said to contain a mapping for a key `k` if and only if `m.containsKey(k)` would return `true`.)

##### Implementation Requirements:

- This implementation always throws an `UnsupportedOperationException`.

Parameters
`key` | `K`: key with which the specified value is to be associated
`value` | `V`: value to be associated with the specified key

Returns
`V` | the previous value associated with `key`, or `null` if there was no mapping for `key`. (A `null` return can also indicate that the map previously associated `null` with `key`, if the implementation supports `null` values.)

Throws
`UnsupportedOperationException` |
`ClassCastException` |
`NullPointerException` |
`IllegalArgumentException` |

### putAll

    public void putAll (Map<? extends K, ? extends V> m)

Copies all of the mappings from the specified map to this map (optional operation). The effect of this call is equivalent to that of calling `put(k, v)` on this map once for each mapping from key `k` to value `v` in the specified map. The behavior of this operation is undefined if the specified map is modified while the operation is in progress.

##### Implementation Requirements:

- This implementation iterates over the specified map's `entrySet()` collection, and calls this map's `put` operation once for each entry returned by the iteration.

  Note that this implementation throws an `UnsupportedOperationException` if this map does not support the `put` operation and the specified map is nonempty.

Parameters
`m` | `Map`: mappings to be stored in this map

Throws
`UnsupportedOperationException` |
`ClassCastException` |
`NullPointerException` |
`IllegalArgumentException` |

### remove

    public V remove (Object key)

Removes the mapping for a key from this map if it is present (optional operation). More formally, if this map contains a mapping from key `k` to value `v` such that `Objects.equals(key, k)`, that mapping is removed. (The map can contain at most one such mapping.)

Returns the value to which this map previously associated the key, or `null` if the map contained no mapping for the key.

If this map permits null values, then a return value of `null` does not necessarily indicate that the map contained no mapping for the key; it's also possible that the map explicitly mapped the key to `null`.

The map will not contain a mapping for the specified key once the call returns.

##### Implementation Requirements:

- This implementation iterates over `entrySet()` searching for an entry with the specified key. If such an entry is found, its value is obtained with its `getValue` operation, the entry is removed from the collection (and the backing map) with the iterator's `remove` operation, and the saved value is returned. If the iteration terminates without finding such an entry, `null` is returned. Note that this implementation requires linear time in the size of the map; many implementations will override this method.

  Note that this implementation throws an `UnsupportedOperationException` if the `entrySet` iterator does not support the `remove` method and this map contains a mapping for the specified key.

Parameters
`key` | `Object`: key whose mapping is to be removed from the map

Returns
`V` | the previous value associated with `key`, or `null` if there was no mapping for `key`.

Throws
`UnsupportedOperationException` |
`ClassCastException` |
`NullPointerException` |

### size

    public int size ()

Returns the number of key-value mappings in this map. If the map contains more than `Integer.MAX_VALUE` elements, returns `Integer.MAX_VALUE`.

##### Implementation Requirements:

- This implementation returns `entrySet().size()`.

Returns
`int` | the number of key-value mappings in this map

### toString

    public String toString ()

Returns a string representation of this map. The string representation consists of a list of key-value mappings in the order returned by the map's `entrySet` view's iterator, enclosed in braces (`"{}"`). Adjacent mappings are separated by the characters `", "` (comma and space). Each key-value mapping is rendered as the key followed by an equals sign (`"="`) followed by the associated value. Keys and values are converted to strings as by `String#valueOf(Object)`.

Returns
`String` | a string representation of this map

### values

    public Collection<V> values ()

Returns a `Collection` view of the values contained in this map. The collection is backed by the map, so changes to the map are reflected in the collection, and vice-versa. If the map is modified while an iteration over the collection is in progress (except through the iterator's own `remove` operation), the results of the iteration are undefined. The collection supports element removal, which removes the corresponding mapping from the map, via the `Iterator.remove`, `Collection.remove`, `removeAll`, `retainAll` and `clear` operations. It does not support the `add` or `addAll` operations.

##### Implementation Requirements:

- This implementation returns a collection that subclasses `AbstractCollection`. The subclass's iterator method returns a "wrapper object" over this map's `entrySet()` iterator. The `size` method delegates to this map's `size` method and the `contains` method delegates to this map's `containsValue` method.

  The collection is created the first time this method is called, and returned in response to all subsequent calls. No synchronization is performed, so there is a slight chance that multiple calls to this method will not all return the same collection.

Returns
`Collection<V>` | a collection view of the values contained in this map

## Protected methods

### clone

    protected Object clone ()

Returns a shallow copy of this `AbstractMap` instance: the keys and values themselves are not cloned.

Returns
`Object` | a shallow copy of this map

Throws
`CloneNotSupportedException` |

Full name *
Email address *
Company / developer name
One of your Play Store app URLs *
Which best describes your business:*
Apps
Games
Apps & Games
*
*