Ich bin nur neugierig, gibt es eine Möglichkeit, ein zufälliges Element aus Realm abzufragen? Ich muss 4 zufällige Gegenstände von meinem Realm + einen bestimmten Gegenstand mit der angegebenen ID bekommen.Wie Abfrage zufälliges Element mit Realm
2
A
Antwort
1
Bearbeiten: Ich weiß nicht von einer Methode in Realm, um ein zufälliges Objekt zu erhalten, aber Sie können es tun, wie unten beschrieben.
Eine Möglichkeit, dies zu tun wäre, alle Objekte abzufragen, dann 4 Zufallszahlen (von 0 bis zur Größe von RealmResults) zu generieren und nur Objekte an diesen Positionen zu bekommen, z. Dies ist, wie ein zufälliges Objekt zu erhalten:
// get realm
Realm realm = Realm.getDefaultInstance();
// get all objects
RealmResults<YourObject> results = realm.where(YourObject.class).findAll();
// random generator
Random r = new Random(System.nanoTime());
// generate first random number to be from the range [0..number of objects)
int firstRandomNumber = r.nextInt(results.size());
// get first object from results at position randomly generated above
YourObject firstRandomObject = results.get(firstRandomNumber);
0
Wenn Sie bereit sind, einzigartige Ergebnisse bekommen Sie diese Funktion nutzen zu können, in dieser Funktion kehren wir eine Realmlist von n Elementen aus einem realmresult:
//Realm result
RealmResults<Question> questionRealmResults = QuestionManager.getAllQuestions();
//Realm List to be returned
RealmList<Question> realmList = new RealmList<>();
//List of unique random questions ids
List<Integer> questionIds = new ArrayList<>();
//Random Instance to generate Questions Ids
Random random = new Random();
int randomNumber;
while (questionIds.size() < limit) {
randomNumber = random.nextInt(questionRealmResults.size());
if (!questionIds.contains(randomNumber)) {
questionIds.add(randomNumber);
realmList.add(new TestQuestion(questionRealmResults.get(randomNumber)));
}
}
Verwandte Themen
- 1. Realm-Abfrage mit Liste
- 2. ReactJS - Target zufälliges Element
- 3. Zufälliges Array-Element in F #
- 4. Realm Datum-Abfrage
- 5. Zufälliges Element in einer Karte
- 6. Rückgabe eindeutige/verschiedene Werte mit Realm-Abfrage
- 7. Zugriff auf zufälliges Element in der Liste
- 8. MySQL vs PHP, wenn ein zufälliges Element
- 9. Wählen Sie zufälliges XML-Element - funktioniert nicht
- 10. Zufälliges Element aus Array-Liste mit verschiedenen Chancen
- 11. Wie ein zufälliges Element aus einer List-Box entfernen
- 12. Get zufälliges Element aus dem Array in MongoDB
- 13. Android Realm finden erste N-Element
- 14. (Swift 2) Wie kann ich ein zufälliges Realm Objekt innerhalb meiner Datenbank bekommen?
- 15. Realm-Abfrage möglich, IN zu verwenden?
- 16. Abfrage bestimmter Ergebnisse von Realm-Array
- 17. Verwenden der Join-Abfrage in Realm
- 18. Listenadapter übernimmt keine Änderungen nach Realm-Abfrage
- 19. Wie wird mit Realm sortiert?
- 20. aktuelles Element in der Liste aktualisieren mit Realm
- 21. Realm Abfrage nicht nur in Xamarin
- 22. Pick-zufälliges Element von NSArray in Objective-C
- 23. Wie erstellt man eine verschachtelte Abfrage in Realm?
- 24. Android Realm - Realm-Objekt übergeben mit Intent
- 25. Zufälliges Dokument in ElasticSearch
- 26. Ruby zufälliges Array
- 27. C# Wählen Sie ein zufälliges Element aus der Liste
- 28. Zufälliges Element der Liste <T> von LINQ SQL
- 29. Javascript ODER jQuery Anzeige zufälliges Element auf Seite aktualisieren
- 30. Wählen Sie ein zufälliges Element aus einer Hashtable
Ja Danke! Aber gibt es eine Methode, um alle Datensätze zu zählen und dann nur zufällige IDs und Abfrage-Datenbank für diese IDs zu machen. Klingt wie ein Plan! –
RealmObjects verfügt nicht über stabile Indizes, die Sie abfragen können. Daher wäre etwas wie oben beschrieben die richtige Vorgehensweise. Beachten Sie, dass alles in Realm lazy-loaded ist, also ist das obige auch ziemlich performant. –