3

我有一个RealmObject与一个RealmList作为它的领域之一。

public class ToyMaker extends RealmObject {
    private RealmList<Toy> toyList;
    ...
}

public class Toy extends RealmObject {
    ...
}
  1. 写入 Realm 并读回时, Toyin的顺序会保持不变吗?toyList

  2. 如果 Realm 不坚持订购,我该如何手动实现这一点

    A. 我不能在Toy类中添加额外的字段(例如索引)(aToy可以有很多ToyMaker,所以索引字段Toy是不可行的。

    B. 排序Toy是添加到的顺序toyList

4

1 回答 1

6

ARealmList是有序的,所以 case #1 是正确的。只需按照您想要的顺序添加它们,该顺序将保持不变。

不过一般来说,顺序是不能保证的,所以在 Realm 中创建 2 个对象并不意味着顺序:

realm.createObject(Person.class, 1);
realm.createObject(Person.class, 2);

// Doing this is not guaranteed to return Person:1
realm.where(Person.class).findAll().first()

// Always use a sort in queries if you want a specific order
realm.where(Person.class).findAllSorted("id", Sort.ASCENDING).first();
于 2016-10-09T17:17:24.657 回答