RealmQueryRealmResult有什么区别?

更具体地说:

RealmQuery上,我可以使用equalTo进行过滤,但是我必须将属性名称作为String传递,这很容易出错。
RealmResultList,因此我可以使用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/

10-09 04:29