/* * Created on Jun 9, 2005 */ package org.seqcode.gseutils; /** * @author tdanford * * Typed container for a pair of objects. */ public class Pair<FirstClass, LastClass> { private FirstClass first; private LastClass last; public Pair(FirstClass first, LastClass last) { this.first = first; this.last = last; } public FirstClass getFirst() { return first; } public LastClass getLast() { return last; } public FirstClass car() {return first;} public LastClass cdr() {return last;} public String toString() { return "<" + first.toString() + "," + last.toString() + ">"; } public int hashCode() { int code = 17; code += first.hashCode(); code *= 37; code += last.hashCode(); code *= 37; return code; } public boolean equals(Object o) { if(!(o instanceof Pair)) { return false; } Pair p = (Pair)o; return p.first.equals(first) && p.last.equals(last); } public Pair<LastClass, FirstClass> swap() { return new Pair<LastClass,FirstClass>(this.cdr(),this.car()); } }