安装包 io.realm
类 RealmMap<K,V>
- java.lang.Object
-
- io.realm.RealmMap<K,V>
-
- 类型参数:
K
- 此映射中存储的键的类型V
- 此映射中存储的值的类型
- 所有已实现的接口:
io.realm.internal.Freezable<RealmMap<K,V>>
,io.realm.internal.ManageableObject
,Map<K,V>
- 直接已知子类:
RealmDictionary
public abstract class RealmMap<K,V> extends Object implements Map<K,V>, io.realm.internal.ManageableObject, io.realm.internal.Freezable<RealmMap<K,V>>
RealmMap 用于将键映射到值。 RealmMap 不能包含重复的键,每个键最多只能映射到一个值。 RealmMap 不能有null
键,但可以有null
值。与
RealmList
类似,RealmDictionary 可以在托管和非托管模式下运行。 在托管模式下,RealmDictionary 会将其所有内容持久保存在 Realm 中,而在非托管模式下,其功能类似于HashMap
。托管 RealmDictionaries 只能由 Realm 创建,并且每当底层 Realm 更新时都会自动更新其内容。Managed RealmDictionaries 只能使用指向
RealmObject
的 RealmDictionary 字段的 getter 来访问。非托管 RealmDictionaries 可由用户创建,可包含托管和非托管 RealmObject。 这在处理 JSON 反序列化器(例如 GSON)或其他将值注入到类中的框架时非常有用。 可以使用
Realm.copyToRealm(Iterable, ImportFlag...)
方法将非托管 RealmMap 添加到 Realm。
-
-
方法摘要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 void
addChangeListener(MapChangeListener<K,V> listener)
向此RealmMap
添加变更侦听器。void
addChangeListener(RealmChangeListener<RealmMap<K,V>> listener)
向此RealmMap
添加变更侦听器。void
clear()
boolean
containsKey(Object key)
boolean
containsValue(Object value)
Set<Map.Entry<K,V>>
entrySet()
RealmMap<K,V>
freeze()
V
get(Object key)
boolean
isEmpty()
boolean
isFrozen()
boolean
isManaged()
boolean
isValid()
Set<K>
keySet()
V
put(K key, V value)
void
putAll(Map<? extends K,? extends V> m)
V
remove(Object key)
void
removeAllChangeListeners()
删除所有用户定义的变更侦听器。void
removeChangeListener(MapChangeListener<K,V> listener)
删除指定的变更侦听器。void
removeChangeListener(RealmChangeListener<RealmMap<K,V>> listener)
删除指定的变更侦听器。int
size()
Collection<V>
values()
-
从接口 java.util 继承的方法地图
compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAll
-
-
-
-
方法详细信息
-
isManaged
public boolean isManaged()
- 指定者:
isManaged
在接口中io.realm.internal.ManageableObject
-
isValid
public boolean isValid()
- 指定者:
isValid
在接口中io.realm.internal.ManageableObject
-
IsFrozen
public boolean isFrozen()
- 指定者:
isFrozen
在接口中io.realm.internal.ManageableObject
-
addChangeListener
public void addChangeListener(MapChangeListener<K,V> listener)
向此RealmMap
添加变更侦听器。注册变更侦听器不会阻止底层 RealmMap 被垃圾收集。 如果对 RealmMap 进行垃圾回收,则将停止触发变更侦听器。 为避免这种情况,请尽可能长时间地保留强引用,例如在类变量中。
public class MyActivity extends Activity { private RealmMap<String, Dog> dogs; // Strong reference to keep listeners alive \@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); dogs = realm.where(Person.class).findFirst().getDogs(); dogs.addChangeListener(new MapChangeListener<String, Dog>() { \@Override public void onChange(RealmMap<String, Dog> map, MapChangeSet<String> changeSet) { // React to change } }); } }
- 参数:
listener
- 要通知的变更侦听器。- 抛出异常:
IllegalArgumentException
- 如果变更侦听器为null
。IllegalStateException
- 如果您尝试从非 事件循环 或IntentService
线程添加侦听器。
-
addChangeListener
public void addChangeListener(RealmChangeListener<RealmMap<K,V>> listener)
向此RealmMap
添加变更侦听器。注册变更侦听器不会阻止底层 RealmMap 被垃圾收集。 如果对 RealmMap 进行垃圾回收,则将停止触发变更侦听器。 为避免这种情况,请尽可能长时间地保留强引用,例如在类变量中。
public class MyActivity extends Activity { private RealmMap<String, Dog> dogs; // Strong reference to keep listeners alive \@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); dogs = realm.where(Person.class).findFirst().getDogs(); dogs.addChangeListener(new RealmChangeListener<RealmMap<String, Dog>>() { \@Override public void onChange(RealmMap<String, Dog> map) { // React to change } }); } }
- 参数:
listener
- 要通知的变更侦听器。- 抛出异常:
IllegalArgumentException
- 如果变更侦听器为null
。IllegalStateException
- 如果您尝试从非 事件循环 或IntentService
线程添加侦听器。- 另请参阅:
RealmChangeListener
-
removeChangeListener
public void removeChangeListener(MapChangeListener<K,V> listener)
删除指定的变更侦听器。- 参数:
listener
- 要删除的变更侦听器。- 抛出异常:
IllegalArgumentException
- 如果变更侦听器为null
。IllegalStateException
- 如果尝试从非 事件循环 线程中删除侦听器。
-
removeChangeListener
public void removeChangeListener(RealmChangeListener<RealmMap<K,V>> listener)
删除指定的变更侦听器。- 参数:
listener
- 要删除的变更侦听器。- 抛出异常:
IllegalArgumentException
- 如果变更侦听器为null
。IllegalStateException
- 如果尝试从非 事件循环 线程中删除侦听器。- 另请参阅:
RealmChangeListener
-
删除所有变更监听器
public void removeAllChangeListeners()
删除所有用户定义的变更侦听器。- 抛出异常:
IllegalStateException
- 如果您尝试从非事件循环线程中删除侦听器。- 另请参阅:
RealmChangeListener
-
-