RealmObject 中的 RealmList。如何持久化订单?

RealmList in RealmObject. How to persist order?

我有一个 RealmObject,其中一个字段是 RealmList

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

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

  2. 如果 Realm 不坚持排序,鉴于

    我该如何手动实现这一点

    一个。我不能在 Toy class 中添加额外的字段(例如索引)(一个 Toy 可以有很多 ToyMaker 所以 Toy 中的索引字段是不可行的。

    乙。排序是按照Toy加到toyList.

  3. 的顺序

A RealmList 已订购,因此情况 #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();