Mi Hashtable en Java se beneficiaría de que un valor tuviera una estructura de tupla. ¿Qué estructura de datos puedo utilizar en Java para hacerlo?
Hashtable<Long, Tuple<Set<Long>,Set<Long>>> table = ...
No creo que haya una clase tupla de propósito general en Java, pero una personalizada podría ser tan fácil como la siguiente:
public class Tuple<X, Y> {
public final X x;
public final Y y;
public Tuple(X x, Y y) {
this.x = x;
this.y = y;
}
}
Por supuesto, hay algunas implicaciones importantes de cómo diseñar esta clase con respecto a la igualdad, la inmutabilidad, etc, especialmente si usted planea usar las instancias como claves para el hash.
Aquí's esta misma pregunta en otro lugar, que incluye una más robusta equals
, hash
que maerics alude:
Esa discusión pasa a reflejar los enfoques de maerics vs ColinD de "debo reutilizar una clase Tuple con un nombre inespecífico, o hacer una nueva clase con nombres específicos cada vez que me encuentro con esta situación". Hace años yo estaba en el segundo campo; I'he evolucionado en el apoyo a la primera.
Cree una clase que describa el concepto que está modelando y utilícela. Puede simplemente almacenar dos Set
y proporcionar los accesores para ellos, pero debe ser nombrado para indicar qué es exactamente cada uno de esos conjuntos y por qué están agrupados.