001 package aima.util; 002 003 /** 004 * @author Ravi Mohan 005 * 006 */ 007 008 public class Pair<X, Y> { 009 private final X a; 010 011 private final Y b; 012 013 public Pair(X a, Y b) { 014 this.a = a; 015 this.b = b; 016 } 017 018 public X getFirst() { 019 return a; 020 } 021 022 public Y getSecond() { 023 return b; 024 } 025 026 @Override 027 public boolean equals(Object o) { 028 029 Pair<X, Y> p = (Pair<X, Y>) o; 030 return a.equals(p.a) && b.equals(p.b); 031 } 032 033 @Override 034 public int hashCode() { 035 return a.hashCode() + 31 * b.hashCode(); 036 } 037 038 @Override 039 public String toString() { 040 return "< " + getFirst().toString() + " , " + getSecond().toString() 041 + " > "; 042 } 043 044 }