In einer Tabelle von sagen wir 100 Elemente, die der beste Ansatz ist, um die letzten 20 Objekte zu erhalten.Realm.io Android besten Ansatz, um die letzten 20 Artikel aus einer Tabelle zu bekommen
Eine Möglichkeit, die ich mir vorstellen kann, besteht darin, alle Objekte zu laden, das Array umzukehren, ein neues Array zu erstellen und aus den Ergebnissen 20 mal das neue Array zu füllen und es zurückzugeben.
So etwas wie folgt:
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;
}
Gibt es einen besseren Weg, dies schneller in Android mit realm.io zu tun?
aktualisieren
dies so weit ist, wie diese behandelt wird ..
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;
}
können Sie weiter ausarbeiten Sie bitte oder ein Beispiel nennen? Das Maximum in Realm fragt nach einer Zeichenkette und gibt eine Zahl –
Math.max sollte es tun. Mein Hauptpunkt ist es, das Kopieren vollständig zu vermeiden und nur auf die Objekte im Realm direkt mit einem relativen Index Bezug zu nehmen. Es hängt ganz von Ihren Bedürfnissen ab und wie Sie die Methode natürlich anwenden. Ich schlage im Grunde vor, diese Methode nicht zu haben, wenn Sie sie vermeiden können. – bmunk
Danke für Ihre Eingabe..Ich muss die letzten X Einträge in eine Tabelle eingeben, ich kann nicht sortieren, da der Primärschlüssel von 3 Dateien geteilt wird .... Ich benutze die Max jetzt..aber immer noch von der letzten des Arrays auf eine bestimmte Anzahl von Nummer .. Ich wollte loswerden ein Array erstellen und ein Iterieren, nachdem alle Objekt mit der Abfrage erhalten –