2017-03-24 9 views
1

RealmQueryRealmResultの違いは何ですか?より具体的にRealmQueryとRealmResult

RealmQuery

IはequalToでフィルタリングすることができ、私は誤りがちであるString、などの特性名を渡さなければなりません。
RealmResultListなので、filterの方法でフィルタリングすることができます。これは、プロパティにアクセスできるので便利です。

いつでもパフォーマンスやメモリへの影響はありますか?

Javaコード:

realm.where(realmModel.class).findAll().filter(...) 

とRealmQuerys equalTo()in()メソッドを使用していませんか?

あなたは

答えて

3
realm.where(realmModel.class).findAll().filter(...) 

filter()は、あなたが実際にレルムデータベース内のクエリを実行していないという意味、List<T>インターフェースから来ることに感謝します。レルム(データベース側)でフィルタリングされた実際のフィルタリングされたリストではなく、すべての要素であるfindAll()が返す要素ごとにfilter()を実行しているだけです。

これは、私はfilter(new Predicate() {...はAPI 24+しか利用できないと思います。

フィールド名に文字列を使用しない場合は、use constants insteadです。

いつもそうであれば、パフォーマンスやメモリへの影響はありますか?

はい。

SQLの場合、これはSELECT * FROM TABLEと等価で、の代わりにすべての要素をメモリで手動でフィルタリングします(ただし、領域の世界を除く)。

+0

SQL用語では明らかです。しかし、Realmでは、 'RealmResult'の要素はPOJOではなく、データへの参照だけです。本当に影響があります。 'RealmQuery'はどこかにデータへの参照を含まなければなりません。 – lampenlampen

+0

APIレベルは問題ありません - 私はKotlinでプログラミングしています – lampenlampen

+0

フィルタはまだメモリ内のリスト全体を繰り返します。したがって、技術的には、M EpicPandaForce

関連する問題