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;
}

questionAnswers(5)

yourAnswerToTheQuestion