2014-07-26

Kenne Deine Klassenbibliothek Ausgabe 2014/07/26

Im Herbst vergangenen Jahres hatte ich an dieser Stelle über die Klasse Pair der Android-Klassenbibliothek berichtet. Mein Fazit damals:

Paare kommen recht häufig vor. Denken Sie an Koordinaten, Größenangaben oder Seitenverhältnissen. Aber auch für jede Form von Schlüssel-Wert-Kombinationen kann diese Klasse ein praktischer Container sein.

Das stimmt natürlich auch heute noch. Und gilt nicht nur für Android, sondern auch klassische Java-Projekte. Wenn Sie nach java key value pair suchen, stoßen Sie auf eine ganze Reihe von Eigenentwicklungen. Und natürlich auf Implementierungen in weit verbreiteten Bibliotheken. Commons Lang beispielsweise bietet im Paket org.apache.commons.lang3.tuple die abstrakte Klasse Pair sowie deren Ableitungen ImmutablePair und MutablePair. Nicht ganz so bekannt ist, dass Java von Haus aus etwas ähnliches anbietet: die Basis bildet das Interface java.util.Map.Entry. Die Klassen AbstractMap.SimpleEntry und AbstractMap.SimpleImmutableEntry implementieren es. Commons Lang tut dies übrigens ebenfalls.

Auffällig ist, dass die einzelnen Implementierungen jeweils eigene Namen für die Teile des Paares haben. Der Klassier ist key/value. Dann wären da noch first und second, sowie left und right. Hier sehen Sie übrigens das Hauptargument gegen den Einsatz von allgemeinen (generischen) Paaren. Sie verraten nicht, welche Beziehung im konkreten Einsatz die beiden Teile zueinander haben. Spannende Lektüre bietet der Stackoverflow-Eintrag What is the equivalent of the C++ Pair in Java?.

Wie sehen Sie das? Schreiben Sie mir…

No comments:

Post a Comment