Natürlich muss man manchmal mit einer Folge von Objekten mehr anfangen, als sie nur der Reihe nach zu bearbeiten. Aber wenn Sie Ihre Methode so geschrieben haben, dass sie einen Iterator zurückgibt, braucht der Aufrufer nur etwas einfachen Code wie in Listing C, um den Iterator in eine Liste umzuwandeln. Es gibt jedoch keine Möglichkeit, aus einer Liste einen Iterator zu machen, um so die Fähigkeit wiederzugewinnen, auf die ersten Daten bereits zuzugreifen, bevor die letzten erzeugt worden sind.
Ich wäre nachlässig, wenn ich nicht darauf hinweisen würde, dass es eine einfachere, aber völlig ineffektive Weise gibt, einen Iterator aus einer langsamen Datenquelle zu erzeugen. In Listing D sehen Sie eine Methode, die dieselbe Methoden-Signatur, denselben Rückgabewert und dasselbe von außen sichtbare Verhalten besitzt wie das Beispiel in Listing B. Der Unterschied liegt in der Performance und im Speicherverbrauch: Listing D packt erst alle Daten in eine Liste und erzeugt dann den Iterator. Damit bringt es all die Nachteile von Listing A mit sich, ohne dessen Vorzüge zu bieten.
Eine mögliche Verbesserung zur Iterator-Implementierung in Listing B ist ein Puffer. Die einzelne next-Variable kann durch eine LinkedList ersetzt werden, die noch nicht durch den Iterator zurückgegebene Objekte zwischenspeichert. Ein separater Worker-Thread kann den Puffer aus dem ResultSet füllen, während die next-Methode des Iterators die Daten wieder abruft. Sie könnten sogar ein High/Low-Watermark vorsehen, um sicherzustellen, dass der Puffer selber nicht zu viel Speicher verbraucht. Sie werden kaum einen Datenpfad brauchen, der so kompliziert ist, aber sollte das doch einmal der Fall sein, wird ein Iterator Ihnen gute Dienste leisten – eine Liste schafft das nicht.
Cubbit ist das weltweit erste Unternehmen, das Cloud-Objektspeicher anbietet. Es wurde 2016 gegründet und bedient…
Unbefugte können Schadcode einschleusen und ausführen. Auslöser ist eine fehlerhafte Implementierung einer Android-Funktion.
iPhones und iPads belasten das Ergebnis. Außerdem schwächelt Apple im gesamten asiatischen Raum inklusive China…
Die Anzeigen richten sich an IT-Teams und Administratoren. Ziel ist der Zugriff auf IT-Systeme.
Betroffen sind Windows 10 und Windows 11. Laut Microsoft treten unter Umständen VPN-Verbindungsfehler auf. Eine…
Server-CPUs und Server-GPUs legen deutlich zu. Das Gaming-Segment schwächelt indes.