Iteratoren oder Listen für Rückgabewerte in Java

Listing B zeigt im Prinzip dieselbe Methode, aber diesmal mit einem Iterator als Rückgabewert. Auf den ersten Blick sieht das Ganze etwas komplizierter aus. Hier wird eine anonyme Inner Class verwendet, die einige Entwickler vielleicht etwas verwirren mag. Aber ansonsten ist alles recht durchsichtig. Wichtig zu beachten ist, dass keine Ergebnisse aus dem ResultSet entfernt werden, bevor der Iterator zurückgegeben wurde. Dabei kann der Iterator durchaus schon zurückgegeben werden, bevor das ResultSet vollständig gefüllt ist. Diesen Prozess kann man sogar noch weiter beschleunigen, indem man die Erstellung des ResultSet in die hasNext-Methode des Iterators verlegt, so dass das ResultSet erst erstellt wird, wenn hasNext das erste Mal aufgerufen worden ist.

Ebenfalls wichtig ist, dass die next-Methode des Iterators die hasNext-Methode intern aufruft, so dass wir sicherstellen können, dass die next-Methode von ResultSet aufgerufen wird, bevor der erste Aufruf der getString-Methode erfolgt – so wie es das ResultSet-API verlangt. Außerdem sorgen die private Variable next im Iterator und die damit verbundene Prüfung zu Beginn der hasNext-Methode dafür, dass die wiederholten Aufrufe von hasNext zwischen den Aufrufen der next-Methode gewährleistet sind – wie es das Iterator-API erfordert.

Ich habe absichtlich jegliche Synchronisierung weggelassen, da ich wie die Autoren des Java Collections API der Meinung bin, dass es oft effizienter ist, den Nutzer des Iterators für die Synchronisierung sorgen zu lassen, falls er es für notwendig hält. Wenn Sie allerdings diesen Iterator Thread-sicher machen wollten, müssten Sie nur die Methoden hasNext und next synchronisieren.

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

DeepL Voice mit KI für Sprach- übersetzungen

DeepL Voice ermöglicht Live‑Übersetzung von Meetings und Gesprächen in 13 Sprachen.

2 Tagen ago

November-Patchday: Microsoft schließt Zero-Day-Lücken in Windows

Betroffen sind Windows und Windows Server. Microsoft patcht aber auch Schwachstellen in Excel, Word und…

2 Tagen ago

LG zeigt elastisches OLED-Display

Es lässt sich um bis zu 50 Prozent dehnen. Allerdings besitzt es eine deutliche geringere…

3 Tagen ago

BSI zu Cybersicherheit: Bedrohungslage bleibt angespannt

Allerdings nimmt auch die Resilienz gegenüber Cyberattacken zu. Das BSI hat außerdem die Cybersicherheit anstehender…

3 Tagen ago

IT-Ausgaben in Europa steigen 2025 voraussichtlich um 8,7 Prozent

Es ist das größte Wachstum in einem Jahr seit 2021. Unter anderem lässt das Interesse…

3 Tagen ago

Magento-Agentur für große Webshops: Was sollte die Magento-Agentur leisten können?

Magento zählt zu den führenden Shopsystemen in der Welt. Es punktet mit hoher Flexibilität und…

4 Tagen ago