TreeSet
tiene un constructor que toma un comparador, lo que significa que incluso si los objetos que almacena no son objetos Comparable
por sí mismos, puede proporcionar un comparador personalizado.TreeSet/TreeMap equivalente para HashSet/HashMap (hasher personalizado)
¿Existe una implementación análoga de un conjunto sin orden? (Por ejemplo, una alternativa a HashSet<T>
que toma un objeto "hasher" que calcula equals()
y hashCode()
para objetos T que pueden ser diferentes de las propias implementaciones de los objetos?)
C++ std::hash_set
que esto da, sólo me preguntaba si hay algo para Java .
Editar: @Max trae un buen punto técnica sobre equals()
- justo lo suficiente; y es cierto para las claves TreeMap
y HashMap
a través de Map.containsKey()
. Pero, ¿hay otras estructuras de datos conocidas que permitan la organización mediante hashers personalizados?
Por cierto, ¿estás seguro de que no están mezclando diferentes dominios de objetos? En general, no tiene problemas para agregar nuevos métodos en los objetos que están en el dominio de su aplicación. Sin embargo, si intenta hacer un mapa de los objetos recibidos de un cliente Axis generado (por ejemplo), entonces está mezclando diferentes dominios: el dominio del servicio web y el dominio de su aplicación. Lo que significa que, en esencia, nunca deberías necesitar lo que estás pidiendo. – bezmax