我是 Realm 的初学者。
我有一个包含 3 列的表,分别命名为ID、姓名、电子邮件、地址。 为了获取名称列的数据,我们使用类似"从table_name中选择名称">这样的查询来表示 SQLite。
如果我们在 Android 中使用 Realm,那么我们必须使用哪种方法来获取仅一列的数据?
我在谷歌和文档上搜索了很多,但无济于事。 谁能帮我?
更新:
我尝试过什么:
RealmResults<User> results = query.findAll();
ArrayList<String> name = new Arraylist();
for(i=0; i<results.size; i++){
name.add(result.get(i).getName();
}
我的问题:
results.size() > 10k. So I want to avoid 10k iteration
for(i=0; i<results.size; i++){
}
查看文档中的查询部分:
在 Realm 中,所有的获取(包括查询)都是惰性的,并且数据永远不会被复制。
这意味着,当您调用该方法时,将获取特定列(属性)的数据getMyProperty()
。不是在调用finadAll()
对象RealmQuery
方法之后
如果我们在 Android 中使用 Realm,那么我们必须使用哪种方法来获取一列的数据?
你不能,因为 Realm 是一个对象存储,它没有"列"的概念。
我的问题:
results.size()> 10k。所以我想避免 10k 迭代
for(i = 0; i < results.size(); i++){ }
解决方案:不迭代?
RealmResults<User> results = query.findAll();
//List<String> name = new ArrayList<>();
//for(i = 0; i < results.size(); i++){
// name.add(result.get(i).getName();
//}
return results;
// ...
String name = results.get(position).getName();