El mejor enfoque de Realm.io para Android para obtener los últimos 20 elementos de una tabla

En una tabla de digamos 100 elementos, que es el mejor enfoque para obtener los últimos 20 objetos.

Una forma en la que puedo pensar es cargar todos los objetos, invertir la matriz, crear una nueva matriz y hacer un ciclo a partir de los resultados 20 veces para llenar la nueva matriz y devolverla.

Algo como lo siguiente:

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

¿Hay una manera mejor y más rápida de hacer esto en Android usando realm.io?

Actualizar

Así es como se maneja esto.

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

Respuestas a la pregunta(5)

Su respuesta a la pregunta