# ObservableMap

Summary:[Nested Classes](https://developer.android.com/reference/android/databinding/ObservableMap#nestedclasses)\|[Methods](https://developer.android.com/reference/android/databinding/ObservableMap#pubmethods)\|[Inherited Methods](https://developer.android.com/reference/android/databinding/ObservableMap#inhmethods)\|[\[Expand All\]](https://developer.android.com/reference/android/databinding/ObservableMap#)  

# ObservableMap

`
public


interface
ObservableMap
`  
`


implements

`[Map](http://developer.android.com/reference/java/util/Map.html)`<K, V>


`

|-------------------------------------------|
| android.databinding.ObservableMap\<K, V\> |

|---|---|
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/databinding/ObservableMap#)Known Indirect Subclasses [ObservableArrayMap](https://developer.android.com/reference/android/databinding/ObservableArrayMap)\<K, V\> |--------------------------------------------------------------------------------------------------------------|---| | [ObservableArrayMap](https://developer.android.com/reference/android/databinding/ObservableArrayMap)\<K, V\> |   | ||

<br />

*** ** * ** ***

A[Map](http://developer.android.com/reference/java/util/Map.html)that notifies when items change. This kind of Map may be data bound and have the UI update as the map changes.

Implementers must call[onMapChanged(ObservableMap, Object)](https://developer.android.com/reference/android/databinding/ObservableMap.OnMapChangedCallback#onMapChanged(T, K))whenever an item is added, changed, or removed.

ObservableArrayMap is a convenient implementation of ObservableMap. MapChangeRegistry may help other implementations manage the callbacks.  
**See also:**

- [Observable](https://developer.android.com/reference/android/databinding/Observable)
- [ObservableList](https://developer.android.com/reference/android/databinding/ObservableList)

## Summary

|                                                                                                                                                           ### Nested classes                                                                                                                                                           ||
|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` class` | [ObservableMap.OnMapChangedCallback](https://developer.android.com/reference/android/databinding/ObservableMap.OnMapChangedCallback)`<T extends `[ObservableMap](https://developer.android.com/reference/android/databinding/ObservableMap)`<K, V>, K, V>` A callback receiving notifications when an ObservableMap changes. |

|                                                                                                                                                                                                                                                                                    ### Public methods                                                                                                                                                                                                                                                                                    ||
|------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` abstract void` | ` `[addOnMapChangedCallback](https://developer.android.com/reference/android/databinding/ObservableMap#addOnMapChangedCallback(android.databinding.ObservableMap.OnMapChangedCallback<? extends android.databinding.ObservableMap<K, V>, K, V>))`(`[OnMapChangedCallback](https://developer.android.com/reference/android/databinding/ObservableMap.OnMapChangedCallback)`<? extends `[ObservableMap](https://developer.android.com/reference/android/databinding/ObservableMap)`<K, V>, K, V> callback) ` Adds a callback to listen for changes to the ObservableMap. |
| ` abstract void` | ` `[removeOnMapChangedCallback](https://developer.android.com/reference/android/databinding/ObservableMap#removeOnMapChangedCallback(android.databinding.ObservableMap.OnMapChangedCallback<? extends android.databinding.ObservableMap<K, V>, K, V>))`(`[OnMapChangedCallback](https://developer.android.com/reference/android/databinding/ObservableMap.OnMapChangedCallback)`<? extends `[ObservableMap](https://developer.android.com/reference/android/databinding/ObservableMap)`<K, V>, K, V> callback) ` Removes a previously added callback.                  |

| ### Inherited methods |
|-----------------------|---|
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/databinding/ObservableMap#)From interface` `[java.util.Map](http://developer.android.com/reference/java/util/Map.html)` ` |------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ` abstract void`                                                                                                                                                 | ` clear() `                                                                                                                                                              | | ` default V`                                                                                                                                                     | ` compute(K arg0, `[BiFunction](http://developer.android.com/reference/java/util/function/BiFunction.html)`<? super K, ? super V, ? extends V> arg1) `                   | | ` default V`                                                                                                                                                     | ` computeIfAbsent(K arg0, `[Function](http://developer.android.com/reference/java/util/function/Function.html)`<? super K, ? extends V> arg1) `                          | | ` default V`                                                                                                                                                     | ` computeIfPresent(K arg0, `[BiFunction](http://developer.android.com/reference/java/util/function/BiFunction.html)`<? super K, ? super V, ? extends V> arg1) `          | | ` abstract boolean`                                                                                                                                              | ` containsKey(`[Object](http://developer.android.com/reference/java/lang/Object.html)` arg0) `                                                                           | | ` abstract boolean`                                                                                                                                              | ` containsValue(`[Object](http://developer.android.com/reference/java/lang/Object.html)` arg0) `                                                                         | | ` abstract `[Set](http://developer.android.com/reference/java/util/Set.html)`<`[Entry](http://developer.android.com/reference/java/util/Map.Entry.html)`<K, V>>` | ` entrySet() `                                                                                                                                                           | | ` abstract boolean`                                                                                                                                              | ` equals(`[Object](http://developer.android.com/reference/java/lang/Object.html)` arg0) `                                                                                | | ` default void`                                                                                                                                                  | ` forEach(`[BiConsumer](http://developer.android.com/reference/java/util/function/BiConsumer.html)`<? super K, ? super V> arg0) `                                        | | ` abstract V`                                                                                                                                                    | ` get(`[Object](http://developer.android.com/reference/java/lang/Object.html)` arg0) `                                                                                   | | ` default V`                                                                                                                                                     | ` getOrDefault(`[Object](http://developer.android.com/reference/java/lang/Object.html)` arg0, V arg1) `                                                                  | | ` abstract int`                                                                                                                                                  | ` hashCode() `                                                                                                                                                           | | ` abstract boolean`                                                                                                                                              | ` isEmpty() `                                                                                                                                                            | | ` abstract `[Set](http://developer.android.com/reference/java/util/Set.html)`<K>`                                                                                | ` keySet() `                                                                                                                                                             | | ` default V`                                                                                                                                                     | ` merge(K arg0, V arg1, `[BiFunction](http://developer.android.com/reference/java/util/function/BiFunction.html)`<? super V, ? super V, ? extends V> arg2) `             | | ` abstract V`                                                                                                                                                    | ` put(K arg0, V arg1) `                                                                                                                                                  | | ` abstract void`                                                                                                                                                 | ` putAll(`[Map](http://developer.android.com/reference/java/util/Map.html)`<? extends K, ? extends V> arg0) `                                                            | | ` default V`                                                                                                                                                     | ` putIfAbsent(K arg0, V arg1) `                                                                                                                                          | | ` default boolean`                                                                                                                                               | ` remove(`[Object](http://developer.android.com/reference/java/lang/Object.html)` arg0, `[Object](http://developer.android.com/reference/java/lang/Object.html)` arg1) ` | | ` abstract V`                                                                                                                                                    | ` remove(`[Object](http://developer.android.com/reference/java/lang/Object.html)` arg0) `                                                                                | | ` default boolean`                                                                                                                                               | ` replace(K arg0, V arg1, V arg2) `                                                                                                                                      | | ` default V`                                                                                                                                                     | ` replace(K arg0, V arg1) `                                                                                                                                              | | ` default void`                                                                                                                                                  | ` replaceAll(`[BiFunction](http://developer.android.com/reference/java/util/function/BiFunction.html)`<? super K, ? super V, ? extends V> arg0) `                        | | ` abstract int`                                                                                                                                                  | ` size() `                                                                                                                                                               | | ` abstract `[Collection](http://developer.android.com/reference/java/util/Collection.html)`<V>`                                                                  | ` values() `                                                                                                                                                             | ||

## Public methods

### addOnMapChangedCallback

```
void addOnMapChangedCallback (OnMapChangedCallback<? extends ObservableMap<K, V>, K, V> callback)
```

Adds a callback to listen for changes to the ObservableMap.

<br />

|                                       Parameters                                       ||
|------------|----------------------------------------------------------------------------|
| `callback` | `OnMapChangedCallback`: The callback to start listening for events. <br /> |

### removeOnMapChangedCallback

```
void removeOnMapChangedCallback (OnMapChangedCallback<? extends ObservableMap<K, V>, K, V> callback)
```

Removes a previously added callback.

<br />

|                                                 Parameters                                                  ||
|------------|-------------------------------------------------------------------------------------------------|
| `callback` | `OnMapChangedCallback`: The callback that no longer needs to be notified of map changes. <br /> |

-

  ## Annotations

  - [Bindable](https://developer.android.com/reference/android/databinding/Bindable)
  - [BindingAdapter](https://developer.android.com/reference/android/databinding/BindingAdapter)
  - [BindingConversion](https://developer.android.com/reference/android/databinding/BindingConversion)
  - [BindingMethod](https://developer.android.com/reference/android/databinding/BindingMethod)
  - [BindingMethods](https://developer.android.com/reference/android/databinding/BindingMethods)
  - [InverseBindingAdapter](https://developer.android.com/reference/android/databinding/InverseBindingAdapter)
  - [InverseBindingMethod](https://developer.android.com/reference/android/databinding/InverseBindingMethod)
  - [InverseBindingMethods](https://developer.android.com/reference/android/databinding/InverseBindingMethods)
  - [InverseMethod](https://developer.android.com/reference/android/databinding/InverseMethod)
-

  ## Interfaces

  - [DataBindingComponent](https://developer.android.com/reference/android/databinding/DataBindingComponent)
  - [InverseBindingListener](https://developer.android.com/reference/android/databinding/InverseBindingListener)
  - [Observable](https://developer.android.com/reference/android/databinding/Observable)
  - [ObservableList](https://developer.android.com/reference/android/databinding/ObservableList)
  - [ObservableMap](https://developer.android.com/reference/android/databinding/ObservableMap)
-

  ## Classes

  - [BaseObservable](https://developer.android.com/reference/android/databinding/BaseObservable)
  - [CallbackRegistry](https://developer.android.com/reference/android/databinding/CallbackRegistry)
  - [CallbackRegistry.NotifierCallback](https://developer.android.com/reference/android/databinding/CallbackRegistry.NotifierCallback)
  - [DataBindingUtil](https://developer.android.com/reference/android/databinding/DataBindingUtil)
  - [ListChangeRegistry](https://developer.android.com/reference/android/databinding/ListChangeRegistry)
  - [MapChangeRegistry](https://developer.android.com/reference/android/databinding/MapChangeRegistry)
  - [MergedDataBinderMapper](https://developer.android.com/reference/android/databinding/MergedDataBinderMapper)
  - [Observable.OnPropertyChangedCallback](https://developer.android.com/reference/android/databinding/Observable.OnPropertyChangedCallback)
  - [ObservableArrayList](https://developer.android.com/reference/android/databinding/ObservableArrayList)
  - [ObservableArrayMap](https://developer.android.com/reference/android/databinding/ObservableArrayMap)
  - [ObservableBoolean](https://developer.android.com/reference/android/databinding/ObservableBoolean)
  - [ObservableByte](https://developer.android.com/reference/android/databinding/ObservableByte)
  - [ObservableChar](https://developer.android.com/reference/android/databinding/ObservableChar)
  - [ObservableDouble](https://developer.android.com/reference/android/databinding/ObservableDouble)
  - [ObservableField](https://developer.android.com/reference/android/databinding/ObservableField)
  - [ObservableFloat](https://developer.android.com/reference/android/databinding/ObservableFloat)
  - [ObservableInt](https://developer.android.com/reference/android/databinding/ObservableInt)
  - [ObservableList.OnListChangedCallback](https://developer.android.com/reference/android/databinding/ObservableList.OnListChangedCallback)
  - [ObservableLong](https://developer.android.com/reference/android/databinding/ObservableLong)
  - [ObservableMap.OnMapChangedCallback](https://developer.android.com/reference/android/databinding/ObservableMap.OnMapChangedCallback)
  - [ObservableParcelable](https://developer.android.com/reference/android/databinding/ObservableParcelable)
  - [ObservableShort](https://developer.android.com/reference/android/databinding/ObservableShort)
  - [OnRebindCallback](https://developer.android.com/reference/android/databinding/OnRebindCallback)
  - [PropertyChangeRegistry](https://developer.android.com/reference/android/databinding/PropertyChangeRegistry)
  - [ViewDataBinding](https://developer.android.com/reference/android/databinding/ViewDataBinding)
  - [ViewStubProxy](https://developer.android.com/reference/android/databinding/ViewStubProxy)