RealmQuery
和RealmResult
有什么区别?
更具体地说:
在RealmQuery
上,我可以使用equalTo
进行过滤,但是我必须将属性名称作为String
传递,这很容易出错。RealmResult
是List
,因此我可以使用filter
方法进行过滤,这更加方便,因为我可以访问属性。
如果有的话,是否会对性能或内存产生影响?
Java代码:
realm.where(realmModel.class).findAll().filter(...)
并且不使用RealmQuerys
equalTo()
和in()
方法?谢谢
最佳答案
realm.where(realmModel.class).findAll().filter(...)
该
filter()
来自List<T>
接口,这意味着您实际上并未在Realm数据库中执行查询。您只是为filter()
返回的每个元素(即每个元素)运行一个findAll()
,而不是由Realm(数据库端)过滤的实际过滤列表。那,我认为
filter(new Predicate() {...
仅适用于API 24+。如果您不想使用字符串作为字段名称,请使用use constants instead。
如果有的话,是否会对性能或内存产生影响?
是。
用SQL术语来说,这等效于
SELECT * FROM TABLE
并手动过滤内存中的每个单个元素,而不是SELECT * FROM TABLE WHERE ...
-在Realm世界中除外。关于android - RealmQuery与RealmResult,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43001932/