Skip to content

Instantly share code, notes, and snippets.

@rkroll
Created August 22, 2011 19:36
Show Gist options
  • Save rkroll/1163305 to your computer and use it in GitHub Desktop.
Save rkroll/1163305 to your computer and use it in GitHub Desktop.
A tuple impl
package adt.reflexam.common.collect;
public class Tuple<V1, V2> {
public static <V1, V2> Tuple<V1, V2> tuple(V1 v1, V2 v2) {
return new Tuple<V1, V2>(v1, v2);
}
private final V1 v1;
private final V2 v2;
public Tuple(V1 v1, V2 v2) {
this.v1 = v1;
this.v2 = v2;
}
public V1 v1() {
return v1;
}
public V2 v2() {
return v2;
}
@Override public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
@SuppressWarnings("rawtypes")
Tuple tuple = (Tuple) o;
if (v1 != null ? !v1.equals(tuple.v1) : tuple.v1 != null) return false;
if (v2 != null ? !v2.equals(tuple.v2) : tuple.v2 != null) return false;
return true;
}
@Override public int hashCode() {
int result = v1 != null ? v1.hashCode() : 0;
result = 31 * result + (v2 != null ? v2.hashCode() : 0);
return result;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment