RealmQuery
和RealmResult
之间有什么区别?
更具体地说:
在RealmQuery
我可以使用equalTo
进行过滤,但我必须将属性名称作为String
传递,这很容易出错。
RealmResult
是List
,因此我可以使用filter
方法进行过滤,这样更方便,因为我可以访问属性。
是否存在任何性能或内存影响;
Java代码:
realm.where(realmModel.class).findAll().filter(...)
并且不使用RealmQuerys equalTo()
和in()
方法?
谢谢
答案 0 :(得分:3)
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世界中。