Tengo un pequeño problema y me preguntaba cómo solucionarlo. Tengo una clase genérica Tuple<A,B>
y ahora me gustaría ordenar sus tuplas según A y B. Se debe tener este aspecto:Asegúrese de que los objetos implementen Comparable
Sin clasificar:
(1,5) (2,8) (6,8) (1,4) (2,4)
Ordenada:
(1,4) (1,5) (2,4) (2,8) (6,8)
Para esa razón pensé en implementar un método de comparación genérico (public int compareTo(Tuple<A, B> other)
) en la clase Tuple. El único problema es que todos los objetos para los que se podría parametrizar la clase (por ejemplo, A = Entero, B = Cadena) también deben implementar el método compareTo para que todo funcione.
¿Hay alguna forma de garantizar que todos los objetos que Tuple puede contener implementen la interfaz Comparable?
¿O hay alguna otra sugerencia sobre cómo solucionar este problema?
Gracias
Prefiero 'A se extiende Comparable super A>', pero +1 para implementar Comparable en la propia Tuple. Deberia haber recordado eso. –
No debe usar 'A extends Comparable ' ... esto no funcionará con clases antiguas que implementen 'Comparable' sin procesar, entre otras cosas. La firma de mmyers con 'A se extiende Comparable super A>' es correcta. – ColinD
Ah, gracias. He editado mi respuesta para no engañar, y he actualizado la versión de mmyers. – Lyle