1 package de.jaret.util.misc; 2 3 public class Pair<L, R> { 4 5 private final L _left; 6 private final R _right; 7 8 public R getRight() { 9 return _right; 10 } 11 12 public L getLeft() { 13 return _left; 14 } 15 16 public Pair(final L left, final R right) { 17 _left = left; 18 _right = right; 19 } 20 21 public final boolean equals(Object o) { 22 if (!(o instanceof Pair)) 23 return false; 24 25 final Pair<?, ?> other = (Pair<?, ?>) o; 26 return equal(getLeft(), other.getLeft()) && equal(getRight(), other.getRight()); 27 } 28 29 public static final boolean equal(Object o1, Object o2) { 30 if (o1 == null) { 31 return o2 == null; 32 } 33 return o1.equals(o2); 34 } 35 36 public int hashCode() { 37 int hLeft = getLeft() == null ? 0 : getLeft().hashCode(); 38 int hRight = getRight() == null ? 0 : getRight().hashCode(); 39 40 return hLeft + (57 * hRight); 41 } 42 }