RealmResults<E> 类
- java.lang.Object
-
- java.util.AbstractCollection <E>
-
- java.util.AbstractList <E>
-
- io.realm.RealmResults<E>
-
- 类型参数:
E
— 此列表中的对象类。
- 所有已实现的接口:
io.realm.internal.Freezable<RealmCollection<E>>
,io.realm.internal.ManageableObject
,OrderedRealmCollection<E>
,RealmCollection<E>
,Iterable<E>
,Collection<E>
,List<E>
public class RealmResults<E> extends AbstractList<E>
此类保存给定 Realm 的RealmQuery
的所有匹配项。 这些对象不会从 Realm 复制到 RealmResults 列表,而只是从 RealmResult 引用。 这样可以节省内存并提高速度。RealmResults 是实时视图,这意味着如果它位于
Looper
线程上,它将在提交事务后自动更新其查询结果。 如果在非事件循环线程上,则必须调用BaseRealm.refresh()
来更新结果。从 RealmResults 列表对 RealmObjects 的更新必须在事务中完成,并且修改的对象在提交事务期间将持久保存到 Realm 文件中。
RealmResults 对象不能在不同线程之间传递。
请注意,RealmResults 永远不会
null
,即使在不包含对象的情况下也是如此。 您应始终使用List.size()
方法来检查 RealmResults 是否为空。如果通过
RealmList.where()
在 RealmList 上构建 RealmResults,则当源 RealmList 被删除时,RealmResults 将变为空。RealmResults
包含的元素数量可以多于Integer.MAX_VALUE
。 在这种情况下,您只能访问其中的前Integer.MAX_VALUE
元素。
-
-
字段摘要
字段 修饰符和类型 字段 说明 io.realm.BaseRealm
baseRealm
此collection所在的BaseRealm
实例。
-
方法摘要
所有方法 实例方法 具体方法 已弃用的方法 修饰符和类型 方法 说明 void
add(int index, E element)
已弃用。boolean
add(E element)
已弃用。boolean
addAll(int location, Collection<? extends E> collection)
已弃用。boolean
addAll(Collection<? extends E> collection)
已弃用。void
addChangeListener(OrderedRealmCollectionChangeListener<RealmResults<E>> listener)
向此RealmResults
添加变更侦听器。void
addChangeListener(RealmChangeListener<RealmResults<E>> listener)
向此RealmResults
添加变更侦听器。Observable<CollectionChange<RealmResults<E>>>
asChangesetObservable()
返回一个 Rx Observable,用于监控此 RealmResults 的更改。Flowable<RealmResults<E>>
asFlowable()
返回一个监控此 RealmResults 变更的 Rx Flowable。String
asJSON()
返回RealmQuery
的匹配项的 JSON 表示形式。double
average(String fieldName)
返回给定字段的平均值。void
clear()
已弃用。boolean
contains(Object object)
在此OrderedRealmCollection
中搜索指定对象。OrderedRealmCollectionSnapshot<E>
createSnapshot()
从此OrderedRealmCollection
创建快照。boolean
deleteAllFromRealm()
这将从底层 Realm 以及集合中删除集合中的所有对象。boolean
deleteFirstFromRealm()
删除列表中的第一个对象。void
deleteFromRealm(int location)
从 Realm 中删除给定索引处的对象。boolean
deleteLastFromRealm()
删除列表中的最后一个对象。E
first()
获取collection中的第一个对象。E
first(E defaultValue)
获取collection中的第一个对象。RealmResults<E>
freeze()
E
get(int location)
返回此列表中指定位置的元素。Realm
getRealm()
返回此collection所属的Realm
实例。boolean
isFrozen()
boolean
isLoaded()
如果尚未加载结果,则返回false
如果已加载结果,则返回true
。boolean
isManaged()
RealmResults
或OrderedRealmCollectionSnapshot
始终是托管collection。boolean
isValid()
检查collection是否仍可有效使用,即Realm
实例尚未关闭。Iterator<E>
iterator()
返回查询结果的迭代器。E
last()
从collection中获取最后一个对象。E
last(E defaultValue)
从collection中获取最后一个对象。ListIterator<E>
listIterator()
返回查询结果的列表迭代器。ListIterator<E>
listIterator(int location)
返回针对查询结果的列表迭代器。boolean
load()
使异步查询阻塞。Number
max(String fieldName)
查找字段的最大值。Date
maxDate(String fieldName)
查找最大日期。Number
min(String fieldName)
查找字段的最小值。Date
minDate(String fieldName)
查找最小日期。E
remove(int index)
已弃用。boolean
remove(Object object)
已弃用。boolean
removeAll(Collection<?> collection)
已弃用。void
removeAllChangeListeners()
删除所有用户定义的变更侦听器。void
removeChangeListener(OrderedRealmCollectionChangeListener<RealmResults<E>> listener)
删除指定的变更侦听器。void
removeChangeListener(RealmChangeListener<RealmResults<E>> listener)
删除指定的变更侦听器。boolean
retainAll(Collection<?> collection)
已弃用。E
set(int location, E object)
已弃用。void
setBlob(String fieldName, byte[] value)
设置collection中所有对象的给定字段的二进制值。void
setBoolean(String fieldName, boolean value)
设置collection内所有对象中给定字段的boolean
值。void
setByte(String fieldName, byte value)
设置collection内所有对象中给定字段的byte
值。void
setDate(String fieldName, Date value)
设置collection内所有对象中给定字段的Date
值。void
setDecimal128(String fieldName, Decimal128 value)
设置collection内所有对象中给定字段的Decimal128
值。void
setDouble(String fieldName, double value)
设置collection内所有对象中给定字段的double
值。void
setFloat(String fieldName, float value)
设置collection内所有对象中给定字段的float
值。void
setInt(String fieldName, int value)
设置collection内所有对象中给定字段的int
值。<T> void
setList(String fieldName, RealmList<T> list)
替换此collection中所有对象上给定字段的 RealmList。void
setLong(String fieldName, long value)
设置collection内所有对象中给定字段的long
值。void
setNull(String fieldName)
将collection中所有对象的给定字段的值设置为null
。void
setObject(String fieldName, RealmModel value)
在collection所有对象中的给定字段上设置对另一个对象的引用。void
setObjectId(String fieldName, ObjectId value)
设置collection内所有对象中给定字段的ObjectId
值。void
setShort(String fieldName, short value)
设置collection内所有对象中给定字段的short
值。void
setString(String fieldName, String value)
设置collection内所有对象中给定字段的String
值。void
setUUID(String fieldName, UUID value)
设置collection内所有对象中给定字段的UUID
值。void
setValue(String fieldName, Object value)
更新查询结果内所有对象中由fieldName
指定的字段。int
size()
返回此查询结果中的元素数。RealmResults<E>
sort(String fieldName)
根据提供的字段以升序对collection进行排序。RealmResults<E>
sort(String[] fieldNames, Sort[] sortOrders)
根据提供的字段和排序顺序对collection进行排序。RealmResults<E>
sort(String fieldName, Sort sortOrder)
根据提供的字段和排序顺序对collection进行排序。RealmResults<E>
sort(String fieldName1, Sort sortOrder1, String fieldName2, Sort sortOrder2)
根据提供的字段和排序顺序对collection进行排序。Number
sum(String fieldName)
计算给定字段的总和。RealmQuery<E>
where()
返回一个RealmQuery
,可用于从此集合中查询特定对象。-
从类 java.util 继承的方法AbstractList
equals, hashCode, indexOf, lastIndexOf, subList
-
从类 java.util 继承的方法AbstractCollection
containsAll, isEmpty, toArray, toArray, toString
-
从接口 java.util 继承的方法collection
parallelStream, removeIf, stream, toArray
-
从接口 java.util 继承的方法列表
containsAll, equals, hashCode, indexOf, isEmpty, lastIndexOf, replaceAll, sort, spliterator, subList, toArray, toArray
-
-
-
-
方法详细信息
-
WHERE
public RealmQuery<E> where()
返回一个RealmQuery
,可用于从此集合中查询特定对象。- 返回:
- RealmQuery 对象。
- 另请参阅:
RealmQuery
-
sort
public RealmResults<E> sort(String fieldName1, Sort sortOrder1, String fieldName2, Sort sortOrder2)
根据提供的字段和排序顺序对collection进行排序。- 指定者:
sort
在接口中OrderedRealmCollection<E>
- 参数:
fieldName1
- 第一个字段名称。 仅支持 boolean、short、int、long、float、double、Date 和 String 类型的字段。sortOrder1
— 第一个字段的排序顺序。fieldName2
— 第二个字段名称。 仅支持 boolean、short、int、long、float、double、Date 和 String 类型的字段。sortOrder2
— 第二个字段的排序顺序。- 返回:
- 将创建并返回一个新的已排序
RealmResults
。 原始collection保持不变。
-
isLoaded
public boolean isLoaded()
如果尚未加载结果,则返回false
如果已加载结果,则返回true
。- 返回:
true
如果查询已完成且数据可用,则如果查询仍在背景运行,则为false
。
-
负载
公共 boolean load()
使异步查询阻塞。 当查询完成时,这也会触发任何已注册的RealmChangeListener
。- 返回:
true
如果成功完成查询,则为false
。
-
setValue
public void setValue(String fieldName, @Nullable Object value)
更新查询结果内所有对象中由fieldName
指定的字段。此方法会自动尝试将
String
给出的数字和布尔值转换为适当的类型。 例如,如果字段类型为 ,则RealmFieldType.INTEGER
"10"
将转换为10
。使用
setInt(String, int)
等类型化 setter 比使用此方法更快。- 参数:
fieldName
- 要更新的字段value
- 要更新的值。- 抛出异常:
IllegalArgumentException
- 如果找不到字段、无法更新字段、参数与字段类型不匹配或无法转换以匹配底层字段类型。
-
setNull
public void setNull(String fieldName)
将collection中所有对象的给定字段的值设置为null
。- 参数:
fieldName
- 要更新的字段名称。- 抛出异常:
IllegalArgumentException
- 如果字段名称不存在或是主键属性。IllegalStateException
- 如果字段无法容纳null
值。
-
setBoolean
public void setBoolean(String fieldName, boolean value)
设置collection内所有对象中给定字段的boolean
值。- 参数:
fieldName
- 要更新的字段名称。value
- 字段的新值。- 抛出异常:
IllegalArgumentException
- 如果字段名称不存在、则为主键属性或者不是布尔字段。
-
setByte
public void setByte(String fieldName, byte value)
设置collection内所有对象中给定字段的byte
值。- 参数:
fieldName
- 要更新的字段名称。value
- 字段的新值。- 抛出异常:
IllegalArgumentException
- 如果字段名称不存在、为主键属性或者不是字节字段。
-
setShort
public void setShort(String fieldName, short value)
设置collection内所有对象中给定字段的short
值。- 参数:
fieldName
- 要更新的字段名称。value
- 字段的新值。- 抛出异常:
IllegalArgumentException
- 如果字段名称不存在、为主键属性或者不是短字段。
-
setInt
public void setInt(String fieldName, int value)
设置collection内所有对象中给定字段的int
值。- 参数:
fieldName
- 要更新的字段名称。value
- 字段的新值。- 抛出异常:
IllegalArgumentException
- 如果字段名称不存在、为主键属性或者不是整型字段。
-
setLong
public void setLong(String fieldName, long value)
设置collection内所有对象中给定字段的long
值。- 参数:
fieldName
- 要更新的字段名称。value
- 字段的新值。- 抛出异常:
IllegalArgumentException
- 如果字段名称不存在、为主键属性或者不是长字段。
-
setFloat
public void setFloat(String fieldName, float value)
设置collection内所有对象中给定字段的float
值。- 参数:
fieldName
- 要更新的字段名称。value
- 字段的新值。- 抛出异常:
IllegalArgumentException
- 如果字段名称不存在、为主键属性或者不是浮点字段。
-
setDouble
public void setDouble(String fieldName, double value)
设置collection内所有对象中给定字段的double
值。- 参数:
fieldName
- 要更新的字段名称。value
- 字段的新值。- 抛出异常:
IllegalArgumentException
- 如果字段名称不存在、为主键属性或者不是双字段。
-
setString
public void setString(String fieldName, @Nullable String value)
设置collection内所有对象中给定字段的String
值。- 参数:
fieldName
- 要更新的字段名称。value
- 字段的新值。- 抛出异常:
IllegalArgumentException
- 如果字段名称不存在、为主键属性或者不是字符串字段。
-
setBlob
public void setBlob(String fieldName, @Nullable byte[] value)
设置collection中所有对象的给定字段的二进制值。- 参数:
fieldName
- 要更新的字段名称。value
- 字段的新值。- 抛出异常:
IllegalArgumentException
- 如果字段名称不存在、为主键属性或者不是二进制字段。
-
setDate
public void setDate(String fieldName, @Nullable Date value)
设置collection内所有对象中给定字段的Date
值。- 参数:
fieldName
- 要更新的字段名称。value
- 字段的新值。- 抛出异常:
IllegalArgumentException
- 如果字段名称不存在、为主键属性或者不是Date
字段。
-
setObject
public void setObject(String fieldName, @Nullable RealmModel value)
在collection所有对象中的给定字段上设置对另一个对象的引用。- 参数:
fieldName
- 要更新的字段名称。value
- 此字段引用的新对象。- 抛出异常:
IllegalArgumentException
- 如果字段名称不存在、为主键属性或者不是对象引用字段。
-
setDecimal128
public void setDecimal128(String fieldName, @Nullable Decimal128 value)
设置collection内所有对象中给定字段的Decimal128
值。- 参数:
fieldName
- 要更新的字段名称。value
- 字段的新值。- 抛出异常:
IllegalArgumentException
- 如果字段名称不存在、为主键属性或者不是Decimal128
字段。
-
setObjectId
public void setObjectId(String fieldName, @Nullable ObjectId value)
设置collection内所有对象中给定字段的ObjectId
值。- 参数:
fieldName
- 要更新的字段名称。value
- 字段的新值。- 抛出异常:
IllegalArgumentException
- 如果字段名称不存在、为主键属性或者不是ObjectId
字段。
-
setUUID
public void setUUID(String fieldName, @Nullable UUID value)
设置collection内所有对象中给定字段的UUID
值。- 参数:
fieldName
- 要更新的字段名称。value
- 字段的新值。- 抛出异常:
IllegalArgumentException
- 如果字段名称不存在、为主键属性或者不是UUID
字段。
-
setList
public <T> void setList(String fieldName, RealmList<T> list)
替换此collection中所有对象上给定字段的 RealmList。- 参数:
fieldName
- 要更新的字段名称。list
- 字段的新值。- 抛出异常:
IllegalArgumentException
- 如果字段 name 不存在,则如果列表中的对象未托管或者列表中的对象类型错误,则不是 RealmList 字段。
-
IsFrozen
public boolean isFrozen()
-
冻结
public RealmResults<E> freeze()
-
addChangeListener
public void addChangeListener(RealmChangeListener<RealmResults<E>> listener)
向此RealmResults
添加变更侦听器。注册变更侦听器不会阻止底层 RealmResults 被垃圾收集。 如果对 RealmResults 进行垃圾回收,则将停止触发变更侦听器。 为避免这种情况,请尽可能长时间地保留强引用,例如在类变量中。
public class MyActivity extends Activity { private RealmResults<Person> results; // Strong reference to keep listeners alive \@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); results = realm.where(Person.class).findAllAsync(); results.addChangeListener(new RealmChangeListener<RealmResults<Person>>() { \@Override public void onChange(RealmResults<Person> persons) { // React to change } }); } }
- 参数:
listener
- 要通知的变更侦听器。- 抛出异常:
IllegalArgumentException
- 如果变更侦听器为null
。IllegalStateException
- 如果您尝试从非 事件循环 或IntentService
线程添加侦听器。
-
addChangeListener
public void addChangeListener(OrderedRealmCollectionChangeListener<RealmResults<E>> listener)
向此RealmResults
添加变更侦听器。注册变更侦听器不会阻止底层 RealmResults 被垃圾收集。 如果对 RealmResults 进行垃圾回收,则将停止触发变更侦听器。 为避免这种情况,请尽可能长时间地保留强引用,例如在类变量中。
public class MyActivity extends Activity { private RealmResults<Person> results; // Strong reference to keep listeners alive \@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); results = realm.where(Person.class).findAllAsync(); results.addChangeListener(new OrderedRealmCollectionChangeListener<RealmResults<Person>>() { \@Override public void onChange(RealmResults<Person> persons, OrderedCollectionChangeSet changeSet) { // React to change } }); } }
- 参数:
listener
- 要通知的变更侦听器。- 抛出异常:
IllegalArgumentException
- 如果变更侦听器为null
。IllegalStateException
- 如果您尝试从非 事件循环 或IntentService
线程添加侦听器。
-
删除所有变更监听器
public void removeAllChangeListeners()
删除所有用户定义的变更侦听器。- 抛出异常:
IllegalStateException
- 如果您尝试从非事件循环线程中删除侦听器。- 另请参阅:
RealmChangeListener
-
removeChangeListener
public void removeChangeListener(RealmChangeListener<RealmResults<E>> listener)
删除指定的变更侦听器。- 参数:
listener
- 要删除的变更侦听器。- 抛出异常:
IllegalArgumentException
- 如果变更侦听器为null
。IllegalStateException
- 如果尝试从非 事件循环 线程中删除侦听器。- 另请参阅:
RealmChangeListener
-
removeChangeListener
public void removeChangeListener(OrderedRealmCollectionChangeListener<RealmResults<E>> listener)
删除指定的变更侦听器。- 参数:
listener
- 要删除的变更侦听器。- 抛出异常:
IllegalArgumentException
- 如果变更侦听器为null
。IllegalStateException
- 如果尝试从非 事件循环 线程中删除侦听器。- 另请参阅:
RealmChangeListener
-
asFlowable
public Flowable<RealmResults<E>> asFlowable()
返回一个监控此 RealmResults 变更的 Rx Flowable。 订阅时,它将发出当前的 RealmResults。 RealmResults 将在 RealmResults 更新时不断发出 -onComplete
将永远不会被调用。从 Realm Flowable 发出的项被冻结(请参阅
freeze()
。 这意味着它们是不可变的,可以在任何线程上读取。Realm Flowables 始终从保存活动 RealmResults 的线程中发出数据项。 这意味着,如果需要进行进一步处理,建议观察计算调度器上的值:
realm.where(Foo.class).findAllAsync().asFlowable() .observeOn(Schedulers.computation()) .map(rxResults -> doExpensiveWork(rxResults)) .observeOn(AndroidSchedulers.mainThread()) .subscribe( ... );
如果希望
asFlowable()
停止发出项目,可以使用first()
操作符指示 RxJava 仅发出第一项:realm.where(Foo.class).findAllAsync().asFlowable() .filter(results -> results.isLoaded()) .first() .subscribe( ... ) // You only get the results once
- 返回:
- 仅调用
onNext
的 RxJava Observable。 它永远不会调用onComplete
或OnError
。 - 抛出异常:
UnsupportedOperationException
- 如果所需的 RxJava 框架不在类路径上,或者相应的 Realm 实例不支持 RxJava。IllegalStateException
- 如果 Realm 不是在 事件循环 线程上打开的。- 另请参阅:
- RxJava 和 Realm
-
asChangesetObservable
public Observable<CollectionChange<RealmResults<E>>> asChangesetObservable()
返回一个 Rx Observable,用于监控此 RealmResults 的更改。 订阅时,它将发出当前的 RealmResults。 每次更新 RealmResult 时,都会发送一对由 RealmResults 和OrderedCollectionChangeSet
组成的结果。 首次发出 RealmResults 时,变更集将为null
。RealmResults 将在 RealmResults 更新时不断发出 -
onComplete
将永远不会被调用。从 Realm Observables 发出的项被冻结(请参阅
freeze()
。 这意味着它们是不可变的,可以在任何线程上读取。Realm Observables 始终从持有活动 Realm 的线程中发出项目。 这意味着,如果需要进行进一步处理,建议观察计算调度器上的值:
realm.where(Foo.class).findAllAsync().asChangesetObservable() .observeOn(Schedulers.computation()) .map((rxResults, changes) -> doExpensiveWork(rxResults, changes)) .observeOn(AndroidSchedulers.mainThread()) .subscribe( ... );
- 返回:
- 仅调用
onNext
的 RxJava Observable。 它永远不会调用onComplete
或OnError
。 - 抛出异常:
UnsupportedOperationException
- 如果所需的 RxJava 框架不在类路径上,或者相应的 Realm 实例不支持 RxJava。IllegalStateException
- 如果 Realm 不是在 事件循环 线程上打开的。- 另请参阅:
- RxJava 和 Realm
-
asJSON
public String asJSON()
返回RealmQuery
的匹配项的 JSON 表示形式。 周期将作为行索引返回。 这是一个用于检查数据或调试目的的辅助方法,该方法可能会拉取一个大字符串,从而导致 OutOfMemory 错误。- 返回:
- JSON 数组的字符串表示形式,其中包含生成的
RealmQuery
的条目。
-
isValid
public boolean isValid()
检查collection是否仍可有效使用,即Realm
实例尚未关闭。对于非托管collection,它将始终返回true
。- 指定者:
isValid
在接口中io.realm.internal.ManageableObject
- 指定者:
isValid
在接口中RealmCollection<E>
- 返回:
true
如果仍可使用,则为非托管collection,否则为false
。
-
isManaged
public boolean isManaged()
RealmResults
或OrderedRealmCollectionSnapshot
始终是托管collection。- 指定者:
isManaged
在接口中io.realm.internal.ManageableObject
- 指定者:
isManaged
在接口中RealmCollection<E>
- 返回:
true
.- 另请参阅:
RealmCollection.isManaged()
-
contains
公共布尔包含( @Nullable Object对象)
在此OrderedRealmCollection
中搜索指定对象。- 指定者:
contains
在接口中Collection<E>
- 指定者:
contains
在接口中List<E>
- 指定者:
contains
在接口中RealmCollection<E>
- 覆盖:
contains
课堂上AbstractCollection<E>
- 参数:
object
- 要搜索的对象。- 返回:
true
object
是此OrderedRealmCollection
的元素,否则为false
。
-
获取
@Nullable public E get(int 位置)
返回此列表中指定位置的元素。- 指定者:
get
在接口中List<E>
- 指定者:
get
课堂上AbstractList<E>
- 参数:
location
- 要返回的元素的索引。- 返回:
- 指定索引处的元素。
- 抛出异常:
IndexOutOfBoundsException
- 如果location < 0 || location >= size()
。
-
first
@Nullable public E first()
获取collection中的第一个对象。- 指定者:
first
在接口中OrderedRealmCollection<E>
- 返回:
- 第一个对象。
-
first
@Nullable public E first( @Nullable E defaultValue)
获取集合中的第一个对象。 如果collection为空,将使用提供的默认。- 指定者:
first
在接口中OrderedRealmCollection<E>
- 返回:
- 第一个对象或提供的默认值。
-
last
@Nullable public E last()
从collection中获取最后一个对象。- 指定者:
last
在接口中OrderedRealmCollection<E>
- 返回:
- 最后一个对象。
-
last
@Nullable public E last( @Nullable E defaultValue)
从collection中获取最后一个对象。如果collection为空,将使用提供的默认。- 指定者:
last
在接口中OrderedRealmCollection<E>
- 返回:
- 最后一个对象或提供的默认值。
-
deleteFromRealm
public void deleteFromRealm(int location)
从 Realm 中删除给定索引处的对象。 这也会将其从collection中删除。- 指定者:
deleteFromRealm
在接口中OrderedRealmCollection<E>
- 参数:
location
- 标识要删除的对象的数组索引。
-
deleteAllFromRealm
public boolean deleteAllFromRealm()
这将从底层 Realm 以及集合中删除集合中的所有对象。- 指定者:
deleteAllFromRealm
在接口中RealmCollection<E>
- 返回:
true
如果删除了对象,则返回false
。
-
迭代器
public Iterator<E> iterator()
返回查询结果的迭代器。 迭代时对 Realm 进行的任何更改都会导致此迭代器在访问时抛出ConcurrentModificationException
。- 指定者:
iterator
在接口中Collection<E>
- 指定者:
iterator
在接口中Iterable<E>
- 指定者:
iterator
在接口中List<E>
- 覆盖:
iterator
课堂上AbstractList<E>
- 返回:
- 此列表元素上的迭代器。
- 另请参阅:
Iterator
-
listIterator
public ListIterator<E> listIterator()
返回查询结果的列表迭代器。 迭代时对 Realm 进行的任何更改都会导致迭代器在访问时抛出ConcurrentModificationException
。- 指定者:
listIterator
在接口中List<E>
- 覆盖:
listIterator
课堂上AbstractList<E>
- 返回:
- 此列表元素上的 ListIterator。
- 另请参阅:
ListIterator
-
listIterator
public ListIterator<E> listIterator(int location)
返回针对查询结果的列表迭代器。 迭代时对 Realm 进行的任何更改都会导致迭代器在访问时抛出ConcurrentModificationException
。- 指定者:
listIterator
在接口中List<E>
- 覆盖:
listIterator
课堂上AbstractList<E>
- 参数:
location
- 开始迭代的索引。- 返回:
- 此列表元素上的 ListIterator。
- 抛出异常:
IndexOutOfBoundsException
- 如果location < 0 || location > size()
。- 另请参阅:
ListIterator
-
sort
public RealmResults<E> sort(String fieldName)
根据提供的字段以升序对collection进行排序。- 指定者:
sort
在接口中OrderedRealmCollection<E>
- 参数:
fieldName
- 作为排序依据的字段名称。 仅支持 boolean、short、int、long、float、double、Date 和 String 类型的字段。- 返回:
- 将创建并返回一个新的已排序
RealmResults
。 原始collection保持不变。
-
sort
public RealmResults<E> sort(String fieldName, Sort sortOrder)
根据提供的字段和排序顺序对collection进行排序。- 指定者:
sort
在接口中OrderedRealmCollection<E>
- 参数:
fieldName
- 作为排序依据的字段名称。 仅支持 boolean、short、int、long、float、double、Date 和 String 类型的字段。sortOrder
- 排序依据的方向。- 返回:
- 将创建并返回一个新的已排序
RealmResults
。 原始collection保持不变。
-
sort
public RealmResults<E> sort(String[] fieldNames, Sort[] sortOrders)
根据提供的字段和排序顺序对collection进行排序。- 指定者:
sort
在接口中OrderedRealmCollection<E>
- 参数:
fieldNames
- 作为排序依据的字段名称数组。 仅支持 boolean、short、int、long、float、double、Date 和 String 类型的字段。sortOrders
- 排序依据的方向。- 返回:
- 将创建并返回一个新的已排序
RealmResults
。 原始collection保持不变。
-
size
public int size()
返回此查询结果中的元素数。- 指定者:
size
在接口中Collection<E>
- 指定者:
size
在接口中List<E>
- 指定者:
size
课堂上AbstractCollection<E>
- 返回:
- 此查询结果中的元素数量。
-
min
公共数字min( String fieldName)
查找字段的最小值。- 指定者:
min
在接口中RealmCollection<E>
- 参数:
fieldName
- 查找最小值的字段。 仅支持数字字段。- 返回:
- 如果对象不存在,或者给定字段的值为
null
,则返回null
。否则返回最小值。 确定最小值时,具有null
值的对象将被忽略。
-
minDate
公共日期minDate( String fieldName)
查找最小日期。- 指定者:
minDate
在接口中RealmCollection<E>
- 参数:
fieldName
- 查找最小日期的字段。如果 fieldName 不是 Date 类型,则会抛出异常。- 返回:
- 如果对象不存在,或者给定日期字段的值为
null
,则返回null
。 否则,返回最小日期。 确定最小日期时,具有null
值的对象将被忽略。
-
Max
公共数字max( String fieldName)
查找字段的最大值。- 指定者:
max
在接口中RealmCollection<E>
- 参数:
fieldName
- 要查找最大值的字段。 仅支持数字字段。- 返回:
- 如果对象不存在,或者给定字段的值为
null
,则返回null
。否则返回最大值。 确定最大值时,具有null
值的对象将被忽略。
-
maxDate
@Nullable public Date maxDate( String fieldName)
查找最大日期。- 指定者:
maxDate
在接口中RealmCollection<E>
- 参数:
fieldName
- 查找最大日期的字段。 如果 fieldName 不是 Date 类型,则会抛出异常。- 返回:
- 如果对象不存在,或者给定日期字段的值为
null
,则返回null
。否则,返回最大日期。 确定最大日期时,具有null
值的对象将被忽略。 - 抛出异常:
IllegalArgumentException
- 如果 fieldName 不是日期字段。
-
总和
公共数字总和(字符串字段名称)
计算给定字段的总和。- 指定者:
sum
在接口中RealmCollection<E>
- 参数:
fieldName
- 要求和的字段。 仅支持数字字段。- 返回:
- 总和。 如果对象不存在,或者给定字段的值为
null
,则返回0
。计算总和时,具有null
值的对象将被忽略。
-
平均值
公共双重平均值( String fieldName)
返回给定字段的平均值。- 指定者:
average
在接口中RealmCollection<E>
- 参数:
fieldName
- 计算平均值的字段。 仅支持数字字段。- 返回:
- 查询结果中对象之间给定字段的平均值。对于所有类型的数字字段,该值的类型都是 double。如果对象不存在,或者给定字段的值为
null
,则返回0
。计算平均值时,具有null
值的对象将被忽略。
-
删除
@Deprecated public E remove(int index)
已弃用。- 指定者:
remove
在接口中List<E>
- 覆盖:
remove
课堂上AbstractList<E>
- 抛出异常:
UnsupportedOperationException
-
删除
@Deprecated public boolean remove( 对象 对象)
已弃用。- 指定者:
remove
在接口中Collection<E>
- 指定者:
remove
在接口中List<E>
- 覆盖:
remove
课堂上AbstractCollection<E>
- 抛出异常:
UnsupportedOperationException
-
删除全部
@Deprecated public boolean removeAll(Collection<?> collection)
已弃用。- 指定者:
removeAll
在接口中Collection<E>
- 指定者:
removeAll
在接口中List<E>
- 覆盖:
removeAll
课堂上AbstractCollection<E>
- 抛出异常:
UnsupportedOperationException
-
集
@Deprecated public E set(int location, E object)
已弃用。- 指定者:
set
在接口中List<E>
- 覆盖:
set
课堂上AbstractList<E>
- 抛出异常:
UnsupportedOperationException
-
keepAll
@Deprecated public boolean retainAll(Collection<?> collection)
已弃用。- 指定者:
retainAll
在接口中Collection<E>
- 指定者:
retainAll
在接口中List<E>
- 覆盖:
retainAll
课堂上AbstractCollection<E>
- 抛出异常:
UnsupportedOperationException
-
deleteLastFromRealm
public boolean deleteLastFromRealm()
删除列表中的最后一个对象。 这也会从底层 Realm 中删除该对象。- 指定者:
deleteLastFromRealm
在接口中OrderedRealmCollection<E>
- 返回:
true
如果删除了对象,则为false
。- 抛出异常:
IllegalStateException
- 如果相应的 Realm 已关闭或位于不正确的线程中。
-
deleteFirstFromRealm
public boolean deleteFirstFromRealm()
删除列表中的第一个对象。 这也会从底层 Realm 中删除该对象。- 指定者:
deleteFirstFromRealm
在接口中OrderedRealmCollection<E>
- 返回:
true
如果删除了对象,则为false
。- 抛出异常:
IllegalStateException
- 如果相应的 Realm 已关闭或位于不正确的线程中。
-
清除
@Deprecated public void clear()
已弃用。- 指定者:
clear
在接口中Collection<E>
- 指定者:
clear
在接口中List<E>
- 覆盖:
clear
课堂上AbstractList<E>
- 抛出异常:
UnsupportedOperationException
- 始终。
-
添加
@Deprecated public boolean add(E element)
已弃用。- 指定者:
add
在接口中Collection<E>
- 指定者:
add
在接口中List<E>
- 覆盖:
add
课堂上AbstractList<E>
- 抛出异常:
UnsupportedOperationException
- 始终。
-
添加
@Deprecated public void add(int index, E element)
已弃用。- 指定者:
add
在接口中List<E>
- 覆盖:
add
课堂上AbstractList<E>
- 抛出异常:
UnsupportedOperationException
- 始终。
-
addAll
@Deprecated public boolean addAll(int location, Collection<? extends E> collection)
已弃用。- 指定者:
addAll
在接口中List<E>
- 覆盖:
addAll
课堂上AbstractList<E>
- 抛出异常:
UnsupportedOperationException
- 始终。
-
addAll
@Deprecated public boolean addAll(Collection<? extends E> collection)
已弃用。- 指定者:
addAll
在接口中Collection<E>
- 指定者:
addAll
在接口中List<E>
- 覆盖:
addAll
课堂上AbstractCollection<E>
- 抛出异常:
UnsupportedOperationException
- 始终。
-
createSnapshot
public OrderedRealmCollectionSnapshot<E> createSnapshot()
从接口复制的描述:OrderedRealmCollection
从此OrderedRealmCollection
创建快照。- 指定者:
createSnapshot
在接口中OrderedRealmCollection<E>
- 返回:
- 此collection的快照。
- 另请参阅:
OrderedRealmCollectionSnapshot
-
getRealm
公共Realm getRealm()
返回此collection所属的Realm
实例。不鼓励在返回的实例上调用
Closeable.close()
,因为它与在原始 Realm 实例上调用它相同,这可能会导致 Realm 完全关闭,从而使查询结果失效。- 返回:
Realm
此collection所属的实例。- 抛出异常:
IllegalStateException
- 如果 Realm 是DynamicRealm
的实例或者Realm
已关闭。
-
-