aima.core.util.datastructure.Triplet Maven / Gradle / Ivy
package aima.core.util.datastructure;
/**
* @author Ravi Mohan
* @author Mike Stampone
*
*/
public class Triplet {
private final X x;
private final Y y;
private final Z z;
/**
* Constructs a triplet with three specified elements.
*
* @param x
* the first element of the triplet.
* @param y
* the second element of the triplet.
* @param z
* the third element of the triplet.
*/
public Triplet(X x, Y y, Z z) {
this.x = x;
this.y = y;
this.z = z;
}
/**
* Returns the first element of the triplet.
*
* @return the first element of the triplet.
*/
public X getFirst() {
return x;
}
/**
* Returns the second element of the triplet.
*
* @return the second element of the triplet.
*/
public Y getSecond() {
return y;
}
/**
* Returns the third element of the triplet.
*
* @return the third element of the triplet.
*/
public Z getThird() {
return z;
}
@Override
public boolean equals(Object o) {
if (o instanceof Triplet) {
Triplet other = (Triplet) o;
return (x.equals(other.x)) && (y.equals(other.y))
&& (z.equals(other.z));
}
return false;
}
@Override
public int hashCode() {
return x.hashCode() + 31 * y.hashCode() + 31 * z.hashCode();
}
@Override
public String toString() {
return "< " + x.toString() + " , " + y.toString() + " , "
+ z.toString() + " >";
}
}