如何将RealmResults <model>转换为ArrayList <model>?

时间:2016-05-16 09:46:26

标签: java realm realm-list

当我使用realm.where(Model.class)时,它返回RealmResults,列表项的字段为空。如何将查询集转换为可读的ArrayList或迭代RealmResults以从DB中的对象获取实际数据?

2 个答案:

答案 0 :(得分:8)

所有提取在Realm中都是惰性的,并且永远不会复制数据。因此,如果您想从RealmResults获取当前数据,则必须调用realm.copyFromRealm(结果)。

public List<Model> getModelList() {
    List<Model> list = new ArrayList<>();
    Realm realm;
    try {
        realm = Realm.getDefaultInstance();
        RealmResults<Model> results = realm
                .where(Model.class)
                .findAll();
        list.addAll(realm.copyFromRealm(results));
    } finally {
        if (realm != null) {
            realm.close();
        }
    }
    return list;
}

答案 1 :(得分:2)

RealmResults&LT E - 代替;实现Iterable&lt; E&gt;接口,所以你可以用:

进行迭代
for (E e : realmResults) {
    // Do stuff
}

如果这不能回答问题,请详细说明并添加代码示例。