Как получить первые n строк в памяти из области

Я хочу получить только первые 10 или, возможно, n строк в памяти в виде списка Java, используя метод copyFromRealm. Рассмотрим так:

RealmResults<RecentViewItem> results = realm.where(RecentViewItem.class).findAllSorted("updatedAt", Sort.DESCENDING);
// This will load all rows in-memory list
List<RecentViewItem> list = realm.copyFromRealm(results);

// But I want only first n rows without running any loop.

ОБНОВЛЕНИЕ: поскольку RealmResult расширяет AbstractList —

RealmResults<RecentViewItem> results =
                realm.where(RecentViewItem.class)
                        .findAllSorted("updatedAt", Sort.DESCENDING);
List<RecentViewItem> temp = results.subList(0, maxNoRecentViewItem);   // Still list of RealmProxyObject
List<RecentViewItem> list = realm.copyFromRealm(temp);   // List of RecentViewItem Object

person iamcrypticcoder    schedule 26.12.2016    source источник
comment
При обычном использовании также нет причин вызывать copyFromRealm(). Единственный раз, когда это имеет смысл при правильном использовании Realm, — это когда вы хотите отправить управляемый объект через что-то, что напрямую зависит от чтения полей — в основном, если вы отправляете объект как @Body с дооснащением, используя GsonAdapterFactory. В противном случае copyFromRealm() обычно является неправильным использованием Realm API.   -  person EpicPandaForce    schedule 27.12.2016
comment
@EpicPandaForce Извините, я не согласен с тем, что copyFromRealm() является неправильным использованием или не рекомендуется. Иногда вам не нужен постоянно управляемый объект Realm (RealmProxyObject) или вам нужно несколько строк в памяти.   -  person iamcrypticcoder    schedule 27.12.2016
comment
Только другие случаи, которые я могу себе представить, - это изменение порядка и создание изменяемых копий, которые вы хотели бы сохранить позже.   -  person EpicPandaForce    schedule 27.12.2016