Class ObservableMap<K,V>

java.lang.Object
java.util.AbstractMap<K,V>
java.util.HashMap<K,V>
com.imyeyu.java.obs.ObservableMap<K,V>
Type Parameters:
K - 键类型
V - 值类型
All Implemented Interfaces:
Serializable, Cloneable, Map<K,V>

public class ObservableMap<K,V> extends HashMap<K,V>
可观察映射,支持监听键值对新增、更新和删除事件
Since:
2024-09-01 18:32
Author:
夜雨
See Also:
  • Constructor Details

    • ObservableMap

      public ObservableMap()
  • Method Details

    • addChangeListener

      public void addChangeListener(MapChangeListener<K,V> listener)
      添加映射变更监听器
      Parameters:
      listener - 映射变更监听器
    • removeChangeListener

      public void removeChangeListener(MapChangeListener<K,V> listener)
      移除映射变更监听器
      Parameters:
      listener - 映射变更监听器
    • put

      public V put(K key, V value)
      写入键值对并在必要时通知监听器
      Specified by:
      put in interface Map<K,V>
      Overrides:
      put in class HashMap<K,V>
      Parameters:
      key - 键
      value - 值
      Returns:
      旧值,不存在则为 null
    • putAll

      public void putAll(Map<? extends K,? extends V> m)
      批量写入键值对
      Specified by:
      putAll in interface Map<K,V>
      Overrides:
      putAll in class HashMap<K,V>
      Parameters:
      m - 待写入映射
    • remove

      public V remove(Object key)
      删除指定键并通知监听器
      Specified by:
      remove in interface Map<K,V>
      Overrides:
      remove in class HashMap<K,V>
      Parameters:
      key - 键
      Returns:
      被删除值,不存在则为 null
    • remove

      public boolean remove(Object key, Object value)
      仅当键值都匹配时删除并通知监听器
      Specified by:
      remove in interface Map<K,V>
      Overrides:
      remove in class HashMap<K,V>
      Parameters:
      key - 键
      value - 值
      Returns:
      true 表示删除成功