很多时候我想让Realm查询返回一个布尔值,告诉查询是否包含结果。我不知道内置的Realm是为了这个目的所以我最终得到了两种方法:
public boolean check(int property) {
Realm realm = null;
try {
realm = Realm.getDefaultInstance();
RealmQuery<MyObject> query = realm.where(MyObject.class)
.equalTo("property", property);
if (query.findFirst() == null) {
return false;
} else {
return true;
}
} finally {
if (realm != null) realm.close();
}
}
OR
public boolean check(int property) {
Realm realm = null;
try {
realm = Realm.getDefaultInstance();
RealmQuery<MyObject> query = realm.where(MyObject.class)
.equalTo("property", property);
if (query.count() < 1) {
return false;
} else {
return true;
}
} finally {
if (realm != null) realm.close();
}
}
它们仅在query.findFirst() == null
与query.count() < 1
部分有所不同。
哪两个是性能最快的,考虑到底层查询通常要比这个复杂得多?