# Interface IObservableMap<K,V>

Type Parameters:
  `K` - type of the keys in the map
  `V` - type of the values in the map

All Superinterfaces:
  `IObservable, Map<K,V>`

All Known Implementing Classes:
  `AbstractObservableMap, BidiObservableMap, BidirectionalMap, CompositeMap, ComputedObservableMap, DecoratingObservableMap, ObservableMap, WritableMap`

public interface IObservableMap<K,V> extends Map<K,V>, IObservable
Observable Map.

Since:
  1.1
See Also:
  - `AbstractObservableMap`
  - `ObservableMap`
Restriction:
  This interface is not intended to be implemented by clients. Clients should instead subclass one of the classes that implement this interface.

  Authors of extensions to the databinding framework may extend this interface and indirectly implement it, but if doing so must also extend one of the framework classes. (Use an API problem filter to suppress the resulting warning.)

  Direct implementers of this interface outside of the framework will be broken in future releases when methods are added to this interface.

## Nested Class Summary

### Nested classes/interfaces inherited from interface Map

`Map.Entry<K,V>`

## Method Summary

Modifier and Type
Method
Description
`void`
`addMapChangeListener(IMapChangeListener<? super K, ? super V> listener)`
`boolean`
`containsKey(Object key)`
`boolean`
`containsValue(Object value)`
`Set<Map.Entry<K,V>>`
`entrySet()`
`boolean`
`equals(Object o)`
`V`
`get(Object key)`
`Object`
`getKeyType()`
Returns the element type for the `keyset` of this observable map, or `null` if the keyset is untyped.
`Object`
`getValueType()`
Returns the element type for the `values` of this observable map, or `null` if the values collection is untyped.
`int`
`hashCode()`
`boolean`
`isEmpty()`
`Set<K>`
`keySet()`
`V`
`put(K key, V value)`
`V`
`remove(Object key)`
`void`
`removeMapChangeListener(IMapChangeListener<? super K, ? super V> listener)`
`int`
`size()`
`Collection<V>`
`values()`

### Methods inherited from interface IObservable

`addChangeListener, addDisposeListener, addStaleListener, dispose, getRealm, isDisposed, isStale, removeChangeListener, removeDisposeListener, removeStaleListener`

### Methods inherited from interface Map

`clear, compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putAll, putIfAbsent, remove, replace, replace, replaceAll`

## Method Details

### getKeyType

Object getKeyType()
Returns the element type for the `keyset` of this observable map, or `null` if the keyset is untyped.

Returns:
  the element type for the `keyset` of this observable map, or `null` if the keyset is untyped.
Since:
  1.2

### getValueType

Object getValueType()
Returns the element type for the `values` of this observable map, or `null` if the values collection is untyped.

Returns:
  the element type for the `values` of this observable map, or `null` if the values collection is untyped.
Since:
  1.2

### addMapChangeListener

void addMapChangeListener(IMapChangeListener<? super K, ? super V> listener)

Parameters:
  `listener` - the change listener to add; not `null`

### removeMapChangeListener

void removeMapChangeListener(IMapChangeListener<? super K, ? super V> listener)

Parameters:
  `listener` - the change listener to remove; not `null`

### size

int size()

Specified by:
  `size` in interface `Map<K,V>`
TrackedGetter

### isEmpty

boolean isEmpty()

Specified by:
  `isEmpty` in interface `Map<K,V>`
TrackedGetter

### containsKey

boolean containsKey(Object key)

Specified by:
  `containsKey` in interface `Map<K,V>`
TrackedGetter

### containsValue

boolean containsValue(Object value)

Specified by:
  `containsValue` in interface `Map<K,V>`
TrackedGetter

### get

V get(Object key)

Specified by:
  `get` in interface `Map<K,V>`
TrackedGetter

### put

V put(K key, V value)

Specified by:
  `put` in interface `Map<K,V>`

### remove

V remove(Object key)

Specified by:
  `remove` in interface `Map<K,V>`

### keySet

Set<K> keySet()

Specified by:
  `keySet` in interface `Map<K,V>`
TrackedGetter

### values

Collection<V> values()

Specified by:
  `values` in interface `Map<K,V>`
TrackedGetter

### entrySet

Set<Map.Entry<K,V>> entrySet()

Specified by:
  `entrySet` in interface `Map<K,V>`
TrackedGetter

### equals

boolean equals(Object o)

Specified by:
  `equals` in interface `Map<K,V>`
Overrides:
  `equals` in class `Object`
TrackedGetter

### hashCode

int hashCode()

Specified by:
  `hashCode` in interface `Map<K,V>`
Overrides:
  `hashCode` in class `Object`
TrackedGetter