In einem Thread über comp.lang.java.help
gibt Hunter Gratzner einige Argumente gegen das Vorhandensein eines Pair
-Konstrukts in Java. Das Hauptargument ist, dass eine Klasse Pair
keine Semantik über die Beziehung zwischen den beiden Werten vermittelt (wie weiß man, was "erstes" und "zweites" bedeuten?).
Es ist eine bessere Praxis, für jede Anwendung, die man mit der Pair
-Klasse gemacht hätte, eine sehr einfache Klasse zu schreiben, wie die von Mike vorgeschlagene. Map.Entry
ist ein Beispiel für ein Paar, das seine Bedeutung in seinem Namen trägt.
Zusammenfassend ist es meiner Meinung nach besser, eine Klasse Position(x,y)
, eine Klasse Range(begin,end)
und eine Klasse Entry(key,value)
zu haben, anstelle eines generischen Pair(first,second)
, das mir nichts darüber sagt, was es tun soll.
10 Stimmen
Warum ist
AbstractMap.SimpleEntry
umständlich?0 Stimmen
Sehen Sie meine Antwort stackoverflow.com/a/16089164/173149, wo ich AbstractMap.SimpleImmutableEntry ohne Probleme verwende (kompliziertes Beispiel).
0 Stimmen
SimpleEntry
hat drei Methoden, die nicht vonObject
vererbt wurden. Warum sollte es "verschachtelt" sein?29 Stimmen
Aufgrund der Namensgebung, willkürliche Benennung eines Schlüssels und eines Werts.
2 Stimmen
Siehe auch stackoverflow.com/questions/6271731/…
0 Stimmen
Wenn Sie Java 8 verwenden, löst
import javafx.util.Pair
Ihre Probleme.2 Stimmen
@sffc JavaFX ist in keinem der Standard-Classpaths in JDK7 vorhanden, für die Verwendung muss die JFX-Laufzeitbibliotheken manuell hinzugefügt werden.
4 Stimmen
@Enerccio: Also, du behauptest tatsächlich, dass "erstes" und "zweites" nicht willkürlich sind, während "Schlüssel" und "Wert" - ist? Dann ist das ein guter Grund dafür, eine solche Klasse nicht im SDK zu haben. Es würde einen ewigen Streit über die "richtige" Benennung geben.