Quiero hacer una clase utilizable en SortedSet
| SortedMap
.¿Tiene sentido que equals y compareTo sean inconsistentes?
class MyClass implements Comparable<MyClass>{
// the only thing relevant to comparisons:
private final String name;
//...
}
Las instancias de la clase 'se deben ordenar por su propiedad de nombre.
Sin embargo, no deseo que las instancias igualmente nombradas se consideren iguales.
Así que un contenido SortedSet
se vería como a, a, a, b, c.
(Normalmente, SortedSet
sólo permitiría a, b, c)
En primer lugar: ¿es esto (filosóficamente) consistente?
Si es así, ¿tengo que esperar un comportamiento impredecible, cuando no anulación equals(...)
y hashCode()
?
Editar:
Lo siento, mi pregunta parece inconsistente:
quiero poner múltiples valores "igual" dentro de un conjunto , que no permite este por concepto.
Entonces, por favor no responda mi pregunta más.
Gracias a todos los que ya respondieron.
¿Por qué no utilizar un tipo de colección diferente? –
Sí, google-collection-API's MultiSet | MultiMap parece bueno para esto. Espero tanto que el Sun, aehm, Oracle chicos algún día agreguen funcionalidad a la colección API de Java ... –