我想用Realm替换Android中的SqLite来存储类列表,我的代码非常简单,如下所示。
public class MyRealmObject extends RealmObject {
public String getField() {
return field;
}
public void setField(String field) {
this.field = field;
}
private String field;
...
}
List<MyObject> myObjects = new ArrayList();
Realm realm = Realm.getInstance(this);
for(MyRealmObject realm : realm.allobjects(MyRealmObject.class)) {
myObjects.add(new MyObject(realm));
}
realm.close();
return myObjects;
但是,它的性能实际上比我测试设备上的简单SqlLite表慢,我使用它的方式是错误的吗?有没有任何优化技巧?
答案 0 :(得分:0)
为什么要将所有RealmObjects
包裹在MyObject
课程中?特别是复制整个结果集意味着您将失去使用Realm的好处,即除非需要,否则它不会复制数据。
RealmResults
实现了List
接口,因此您应该可以互换使用这两个接口。
List<MyRealmObject> myObjects;
Realm realm = Realm.getInstance(this);
myObjects = realm.allObjects(MyRealmObject.class();
return myObjects;