Realm.io: a melhor abordagem para Android para obter os últimos 20 itens de uma tabela
Em uma tabela, digamos 100 itens, qual é a melhor abordagem para obter os últimos 20 objetos.
Uma maneira de pensar é carregar todos os objetos, reverter a matriz, criar uma nova matriz e fazer um loop a partir dos resultados por 20 vezes preenchendo a nova matriz e retornando-a.
Algo como se segue:
public ArrayList<DataObject> getLastItems (int qty){
RealmResults<DataObject>results = realm.where(DataObject.class).findAll();
Collections.reverse(results);
ArrayList<DataObject>arrayList = new ArrayList<>();
for (int i = 0; i == qty; i++){
arrayList.add(results.get(i));
}
return arrayList;
}
Existe uma maneira melhor e mais rápida de fazer isso no android usando realm.io?
Atualizar
isto é até agora como isso é tratado ..
public ArrayList<DataObject> getLastItems (int qty){
RealmResults<DataObject>results = realm.where(DataObject.class).findAll();
ArrayList<DataObject> arrayList = new ArrayList<>();
for (int i = results.size(); i > Math.max(results.size() - 20, 0) ; i--) {
arrayList.add(results.get(i-1));
}
return arrayList;
}