Ich habe eine Sammlung Collection<RECOBeacon> recoBeacons
das erste Element wird von RECOBeacon first = recoBeacons.iterator().next();
erhalten, aber ich habe Schwierigkeiten, die zweite zu erhalten. Ich versuchte RECOBeacon second = first.next();
und second = first.iterator().next()
, aber keiner von diesen arbeitete. Weiß jemand, wie man dieses Problem löst? Danke!Wie bekomme ich ein zweites Element einer Sammlung?
Antwort
Sie müssen die gleiche Iterator verwenden, um sowohl die ersten zu holen und die zweiten Elemente:
Iterator<RECOBeacon> iter = recoBeacons.iterator();
RECOBeacon first = iter.next();
RECOBeacon second = iter.next()
Es wäre besser, iter.hasNext()
zu iter.next()
vor jedem Anruf zu nennen, eine Ausnahme zu vermeiden, wenn die Collection
weniger hat als zwei Elemente.
Zusätzlich zu @ Erans Antwort verwenden Sie normalerweise Iterator
s zum Iterieren der gesamten Sammlung. Was würdest du in deinem Fall tun, wenn du das 3., 4. ... Element bekommen möchtest? Dann können Sie eine Schleife mit Ihrem Iterator verwenden.
Iterator<RECOBeacon> iter = recoBeacons.iterator();
while(iter.hasNext()) {
RECOBeacon nextBeacon = iter.next();
// do something with nextBeacon
}
Hier hasNext()
Ihre Iterator vom Laufen in ein NoSuchElementException
verhindern und bewirkt, dass aus der Schleife brechen, wenn es das Ende Ihrer Sammlung erreicht.
Wenn Sie auf Java8 sind, können Sie einen Stream verwenden:
RECOBeacon second = recoBeacons.stream().skip(1).findFirst().orElse(null);
Das schöne an dieser Lösung ist, dass Sie eine optionale findfirst zurückgibt, so dass Sie die hasNext Kontrollen wie nicht zu tun haben, bei der Verwendung von ein Iterator.
Beachten Sie auch, dass die Collection-Schnittstelle keine Garantie für die Reihenfolge bietet. Daher kann das Abrufen des n-ten Elements zu unerwarteten Ergebnissen führen.
Dies sollte die akzeptierte Antwort sein! –
- 1. HQL: Ist ein Element einer Sammlung in einer anderen Sammlung?
- 2. ein Element aus einer In-Memory-Sammlung
- 3. Zeige ein Element einer MongoDB Sammlung
- 4. Was kann ich ein einzelnes Element in einer Sammlung speichern?
- 5. Wie bekomme ich ein verschachteltes Element in einer schönen Suppe?
- 6. Wie bekomme ich ein beliebiges Element einer Karte in Go?
- 7. Wie bekomme ich ein Attribut innerhalb einer Element ID
- 8. Wie bekomme ich ein Pseudo-Element?
- 9. Wie bekomme ich ein Audio-Element?
- 10. Wie bekomme ich die Rangliste einer MongoDB-Sammlung?
- 11. Wie bekomme ich die Schlüssel einer Sammlung in VB6.0
- 12. Wie bekomme ich die Größe einer Boto3-Sammlung?
- 13. Wie bekomme ich eindeutige Objektpaare aus einer Sammlung von Objekten?
- 14. Wie bekomme ich Count of Parent Sammlung von Kind?
- 15. ein zweites Mal innerhalb einer Klasse Instanz
- 16. Wie bekomme ich ein Element basierend auf Koordinaten
- 17. Erstes Element geklickt Zeige erstes Modal, zweites Element geklickt Zeige zweites Modal
- 18. Wie bekomme ich ein Element aus der Sammlung in Meteor, wenn es ein mehrdimensionales Array oder Objekt oder beides ist?
- 19. Wie bekomme ich ein DOM-Element innerhalb der React-Komponente?
- 20. ein zweites Element hinzufügen mit auf div: nach
- 21. XPath zweites Element viele wählen, es sei denn nur ein
- 22. In jede Zeile einer Sammlung einfügen ein neues Element LARAVEL
- 23. Laravel: Wie kann ich ein Array innerhalb einer Sammlung zurückgeben?
- 24. Backbone.js - Wie bekomme ich ein Array von Objektliteralen aus einer Sammlung?
- 25. Wie bekomme ich ein untergeordnetes Dokument aus einer Sammlung in mondodb?
- 26. Wie bekomme ich das letzte Element einer Sequenz in XPath?
- 27. Wie bekomme ich das nächste Element in einer Seq (Sequenz)?
- 28. Wie bekomme ich ein Anrufer-Element mit Javascript?
- 29. Wie bekomme ich ein Element durch seine href in jquery?
- 30. Wie bekomme ich ein zufälliges Element aus dem Array?
Sie müssen Ihre Iterator-Instanz 'recoBeacons.iterator()' irgendwo speichern und 'next()' erneut auf ** diesem ** aufrufen. – QBrute