Zusammenfassung
Das Problem Suchen stellt sich, wenn man ein Objekt mit bestimmten Eigenschaften unter vielen ähnlichen Objekten finden möchte. In vielen Fällen ist die Lösung nicht trivial.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Allgemein vom generischen Typ.
- 2.
In der Java-Bibliothek wird zu diesem Zweck die generische Schnittstelle java.util. Map.Entry<K,V> angeboten, wo für K der (beliebige) Schlüsseltyp eingesetzt wird.
- 3.
Auf Deutsch: Sammlung.
- 4.
Oder des letzten belegten.
- 5.
Diese Datenorganisation ist allerdings ungünstig, wenn Elemente aus der Sammlung gelöscht werden sollen.
- 6.
Extends drückt hier aus, dass diese generische Klasse nur mit einem aktuellen Typparameter ausgeprägt werden kann, der die Klasse Beschlüsselt erweitert.
- 7.
Vielleicht ist es eine bessere Idee im Sinne des modernen Software Engineering, im negativen Fall eine Ausnahme zu werfen.
- 8.
Diese Klasse muss mit zwei aktuellen Typparametern ausgeprägt werden, wobei der zweite ein Untertyp von Beschlüsselt<Schlüssel> sein muss.
- 9.
Wie dies geschehen kann, untersuchen wir im Kap. 5.
- 10.
Nützlich bei einer sortierten Liste, s. Abschn. 4.4.2.
- 11.
Es wird angenommen, dass E extends Beschlüsselt, s. Abschn. 4.2.
- 12.
Unglücklicherweise werden etwaige Modifikationen erst zur Laufzeit verhindert. Andere Bibliotheken enthalten Typen wie ImmutableList, s. z. B. [Goog], die gar keine verändernden Methoden exportieren.
- 13.
Wenn wir hier als Ergebnistyp List<?> verwenden würden, könnten wir keinen Lambda-Ausdruck beim Aufruf verwenden.
- 14.
java.util.stream.IntStream ist ähnlich wie Stream, allerdings für int-Werte; es gibt auch DoubleStream und LongStream.
- 15.
Bei einer gut organisierten Tabelle; im ungünstigsten Fall linear.
- 16.
Mit besseren Hash-Funktionen ist die Wahrscheinlichkeit von Kollisionen geringer.
- 17.
Eine (vielleicht bessere) Alternative ist es, dass eintragen eine Ausnahme auslöst, wenn er mit einem schon vorhandenem Schlüssel aufgerufen wird – dann findet die Eintragung nicht statt.
- 18.
Restbestimmung; in Java der Operator %.
- 19.
Weil Java keine Erzeugung von Reihungsobjekten mit dem generischen Typ erlaubt, muss Eintrag[] als roher Typ (ohne Typparameter) ausgeprägt werden.
Author information
Authors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer Fachmedien Wiesbaden GmbH
About this chapter
Cite this chapter
Solymosi, A., Grude, U. (2017). Suchen. In: Grundkurs Algorithmen und Datenstrukturen in JAVA. Springer Vieweg, Wiesbaden. https://doi.org/10.1007/978-3-658-17546-7_4
Download citation
DOI: https://doi.org/10.1007/978-3-658-17546-7_4
Published:
Publisher Name: Springer Vieweg, Wiesbaden
Print ISBN: 978-3-658-17545-0
Online ISBN: 978-3-658-17546-7
eBook Packages: Computer Science and Engineering (German Language)