Uso de pares o 2-tuplas en Java

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 = ...
Solución

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 { 
  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.

Comentarios (10)

Aquí's esta misma pregunta en otro lugar, que incluye una más robusta equals, hash que maerics alude:

http://groups.google.com/group/comp.lang.java.help/browse_thread/thread/f8b63fc645c1b487/1d94be050cfc249b

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.

Comentarios (3)

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.

Comentarios (2)