按自定义顺序对RealmResult进行排序

时间:2017-08-14 14:18:59

标签: java android realm

我有Playlist自定义类型Playlist。每个playlistTypeId都有一个RealmResult字段,可以是1,2或3.我想按以下顺序对Cursor cursor = db.rawQuery("SELECT * FROM PERSON_TABLE ORDER BY age ASC , null); if(cursor.moveToFirst()) //mean find data and point to the samllest cursor.getString(c.getColumnIndex("field_name")); 中的对象进行排序:2,1,3。我能这样做吗?

1 个答案:

答案 0 :(得分:1)

遗憾的是,不支持自定义排序。主要是出于性能原因,因为我们必须为要排序的集合中的每个元素往返Java。您可以按照此问题了解有关情况的更新:https://github.com/realm/realm-java/issues/2313

现在,您需要自己对RealmResults进行排序,但您需要先从RealmResults复制所有元素:

RealmResults<Person> results = realm.where(Person.class).findAll();
List<Person> inmemResults = new ArrayList<>();
inmemResults.addAll(results);
Collections.sort(inmemResults, customSort);