安装包 io.realm
OrderedRealmCollectionSnapshot<E> 类
- java.lang.Object
-
- java.util.AbstractCollection <E>
-
- java.util.AbstractList <E>
-
- io.realm.OrderedRealmCollectionSnapshot<E>
-
- 所有已实现的接口:
io.realm.internal.Freezable<RealmCollection<E>>
,io.realm.internal.ManageableObject
,OrderedRealmCollection<E>
,RealmCollection<E>
,Iterable<E>
,Collection<E>
,List<E>
public class OrderedRealmCollectionSnapshot<E> extends AbstractList<E>
OrderedRealmCollectionSnapshot
是一种特殊类型的OrderedRealmCollection
。 它可以通过调用OrderedRealmCollection.createSnapshot()
创建。 与RealmResults
和RealmList
不同,其大小和元素顺序在创建后永远不会改变。OrderedRealmCollectionSnapshot
在进行可能影响简单循环中集合的大小或顺序的更改时非常有用。 例如:final RealmResults<Dog> dogs = realm.where(Dog.class).findAll(); final OrderedRealmCollectionSnapshot<Dog> snapshot = dogs.createSnapshot(); final int dogsCount = snapshot.size(); // dogs.size() == snapshot.size() == 10 realm.executeTransaction(new Realm.Transaction() { /@Override public void execute(Realm realm) { for (int i = 0; i < dogsCount; i++) { // This won't work since RealmResults is always up-to-date, its size gets decreased by 1 after every loop. An // IndexOutOfBoundsException will be thrown after 5 loops. // dogs.deleteFromRealm(i); snapshot.deleteFromRealm(i); // Deletion on OrderedRealmCollectionSnapshot won't change the size of it. } } });
-
-
字段摘要
字段 修饰符和类型 字段 说明 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)
已弃用。double
average(String fieldName)
返回给定字段的平均值。void
clear()
已弃用。boolean
contains(Object object)
在此OrderedRealmCollection
中搜索指定对象。OrderedRealmCollectionSnapshot<E>
createSnapshot()
从此OrderedRealmCollection
创建快照。boolean
deleteAllFromRealm()
这将从底层 Realm 中删除 collection 中的所有对象。boolean
deleteFirstFromRealm()
从 Realm 中删除第一个对象。void
deleteFromRealm(int location)
从 Realm 中删除给定索引处的对象。boolean
deleteLastFromRealm()
从 Realm 中删除最后一个对象。E
first()
获取collection中的第一个对象。E
first(E defaultValue)
获取collection中的第一个对象。OrderedRealmCollection<E>
freeze()
E
get(int location)
返回此列表中指定位置的元素。Realm
getRealm()
返回此collection所属的Realm
实例。boolean
isFrozen()
boolean
isLoaded()
检查collection是否已完成数据加载。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()
阻止collection,直到所有数据都可用。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)
已弃用。boolean
retainAll(Collection<?> collection)
已弃用。E
set(int location, E object)
已弃用。int
size()
返回此查询结果中的元素数。RealmResults<E>
sort(String fieldName)
RealmResults<E>
sort(String[] fieldNames, Sort[] sortOrders)
RealmResults<E>
sort(String fieldName, Sort sortOrder)
RealmResults<E>
sort(String fieldName1, Sort sortOrder1, String fieldName2, Sort sortOrder2)
Number
sum(String fieldName)
计算给定字段的总和。RealmQuery<E>
where()
已弃用。-
从类 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
-
-
-
-
方法详细信息
-
size
public int size()
返回此查询结果中的元素数。
-
sort
public RealmResults<E> sort(String fieldName)
不受OrderedRealmCollectionSnapshot
支持。 请改用对原始OrderedRealmCollection
的“sort()”。- 指定者:
sort
在接口中OrderedRealmCollection<E>
- 参数:
fieldName
- 作为排序依据的字段名称。 仅支持 boolean、short、int、long、float、double、Date 和 String 类型的字段。- 返回:
- 将创建并返回一个新的已排序
RealmResults
。 原始collection保持不变。 - 抛出异常:
UnsupportedOperationException
-
sort
public RealmResults<E> sort(String fieldName, Sort sortOrder)
不受OrderedRealmCollectionSnapshot
支持。 请改用对原始OrderedRealmCollection
的“sort()”。- 指定者:
sort
在接口中OrderedRealmCollection<E>
- 参数:
fieldName
- 作为排序依据的字段名称。 仅支持 boolean、short、int、long、float、double、Date 和 String 类型的字段。sortOrder
- 排序依据的方向。- 返回:
- 将创建并返回一个新的已排序
RealmResults
。 原始collection保持不变。 - 抛出异常:
UnsupportedOperationException
-
sort
public RealmResults<E> sort(String fieldName1, Sort sortOrder1, String fieldName2, Sort sortOrder2)
不受OrderedRealmCollectionSnapshot
支持。 请改用对原始OrderedRealmCollection
的“sort()”。- 指定者:
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保持不变。 - 抛出异常:
UnsupportedOperationException
-
sort
public RealmResults<E> sort(String[] fieldNames, Sort[] sortOrders)
不受OrderedRealmCollectionSnapshot
支持。 请改用对原始OrderedRealmCollection
的“sort()”。- 指定者:
sort
在接口中OrderedRealmCollection<E>
- 参数:
fieldNames
- 作为排序依据的字段名称数组。 仅支持 boolean、short、int、long、float、double、Date 和 String 类型的字段。sortOrders
- 排序依据的方向。- 返回:
- 将创建并返回一个新的已排序
RealmResults
。 原始collection保持不变。 - 抛出异常:
UnsupportedOperationException
-
WHERE
@Deprecated public RealmQuery<E> where()
已弃用。不受OrderedRealmCollectionSnapshot
支持。 请改用对原始OrderedRealmCollection
的“where()”。- 返回:
- RealmQuery 对象。
- 抛出异常:
UnsupportedOperationException
- 另请参阅:
RealmQuery
-
isLoaded
public boolean isLoaded()
检查collection是否已完成数据加载。- 返回:
true
如果数据已加载且可用,则如果仍在加载数据,则为false
。
-
负载
公共 boolean load()
阻止collection,直到所有数据都可用。- 返回:
true
如果可以成功加载数据,则为false
。
-
createSnapshot
public OrderedRealmCollectionSnapshot<E> createSnapshot()
从此OrderedRealmCollection
创建快照。- 指定者:
createSnapshot
在接口中OrderedRealmCollection<E>
- 返回:
- 此collection的快照。
- 另请参阅:
OrderedRealmCollectionSnapshot
-
冻结
public OrderedRealmCollection<E> freeze()
-
deleteFromRealm
public void deleteFromRealm(int location)
从 Realm 中删除给定索引处的对象。 给定索引处的对象将变为无效。 如果对象已经无效,则仅返回。- 指定者:
deleteFromRealm
在接口中OrderedRealmCollection<E>
- 参数:
location
- 标识要删除的对象的数组索引。- 抛出异常:
IndexOutOfBoundsException
- 如果location < 0 || location >= size()
。IllegalStateException
- 如果 Realm 已关闭或从错误的线程调用该方法。
-
deleteFirstFromRealm
public boolean deleteFirstFromRealm()
从 Realm 中删除第一个对象。 第一个对象将变为无效。- 指定者:
deleteFirstFromRealm
在接口中OrderedRealmCollection<E>
- 返回:
true
如果删除了对象,则为false
。- 抛出异常:
IllegalStateException
- 如果 Realm 已关闭或在错误的线程上调用了该方法。
-
deleteLastFromRealm
public boolean deleteLastFromRealm()
从 Realm 中删除最后一个对象。 最后一个对象将变为无效。- 指定者:
deleteLastFromRealm
在接口中OrderedRealmCollection<E>
- 返回:
true
如果删除了对象,则为false
。- 抛出异常:
IllegalStateException
- 如果 Realm 已关闭或从错误的线程调用该方法。
-
deleteAllFromRealm
public boolean deleteAllFromRealm()
这将从底层 Realm 中删除 collection 中的所有对象。collection快照中的所有对象都将变得无效。- 指定者:
deleteAllFromRealm
在接口中RealmCollection<E>
- 返回:
true
如果删除了对象,则返回false
。- 抛出异常:
IllegalStateException
- 如果相应的 Realm 已关闭或位于不正确的线程中。IllegalStateException
- 如果 Realm 已关闭或从不正确的线程调用。
-
IsFrozen
public boolean isFrozen()
-
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>
- 返回:
- 最后一个对象或提供的默认值。
-
迭代器
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
-
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
-
清除
@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
- 始终。
-
getRealm
公共Realm getRealm()
返回此collection所属的Realm
实例。不鼓励在返回的实例上调用
Closeable.close()
,因为它与在原始 Realm 实例上调用它相同,这可能会导致 Realm 完全关闭,从而使查询结果失效。- 返回:
Realm
此collection所属的实例。- 抛出异常:
IllegalStateException
- 如果 Realm 是DynamicRealm
的实例或者Realm
已关闭。
-
-