Skip to main content
deleted 284 characters in body
Source Link
Nicolas Filotto
  • 45.2k
  • 11
  • 97
  • 129
 public class Pair<A, B> {     private A component1;   private B component2;   public Pair() {   super();   }     public Pair(A component1, B component2) {   this.component1 = component1;   this.component2 = component2;   }   public A fst() {   return component1;   }   public void setComponent1(A component1) {   this.component1 = component1;   }   public B snd() {   return component2;   }   public void setComponent2(B component2) {   this.component2 = component2;   }   @Override   public String toString() {   return "<" + component1 + "," + component2 + ">";   }   @Override   public int hashCode() {   final int prime = 31;   int result = 1;   result = prime * result   + ((component1 == null) ? 0 : component1.hashCode());   result = prime * result   + ((component2 == null) ? 0 : component2.hashCode());   return result;   }   @Override   public boolean equals(Object obj) {   if (this == obj)   return true;   if (obj == null)   return false;   if (getClass() != obj.getClass())   return false;   final Pair<?, ?> other = (Pair<?, ?>) obj;   if (component1 == null) {   if (other.component1 != null)   return false;   } else if (!component1.equals(other.component1))   return false;   if (component2 == null) {   if (other.component2 != null)   return false;   } else if (!component2.equals(other.component2))   return false;   return true;   }   public static <A, B> Pair<A, B> create(A component1, B component2) {   return new Pair<A, B>(component1, component2);   } } 
 public class Pair<A, B> {     private A component1;   private B component2;   public Pair() {   super();   }     public Pair(A component1, B component2) {   this.component1 = component1;   this.component2 = component2;   }   public A fst() {   return component1;   }   public void setComponent1(A component1) {   this.component1 = component1;   }   public B snd() {   return component2;   }   public void setComponent2(B component2) {   this.component2 = component2;   }   @Override   public String toString() {   return "<" + component1 + "," + component2 + ">";   }   @Override   public int hashCode() {   final int prime = 31;   int result = 1;   result = prime * result   + ((component1 == null) ? 0 : component1.hashCode());   result = prime * result   + ((component2 == null) ? 0 : component2.hashCode());   return result;   }   @Override   public boolean equals(Object obj) {   if (this == obj)   return true;   if (obj == null)   return false;   if (getClass() != obj.getClass())   return false;   final Pair<?, ?> other = (Pair<?, ?>) obj;   if (component1 == null) {   if (other.component1 != null)   return false;   } else if (!component1.equals(other.component1))   return false;   if (component2 == null) {   if (other.component2 != null)   return false;   } else if (!component2.equals(other.component2))   return false;   return true;   }   public static <A, B> Pair<A, B> create(A component1, B component2) {   return new Pair<A, B>(component1, component2);   } } 
public class Pair<A, B> { private A component1; private B component2; public Pair() { super(); } public Pair(A component1, B component2) { this.component1 = component1; this.component2 = component2; } public A fst() { return component1; } public void setComponent1(A component1) { this.component1 = component1; } public B snd() { return component2; } public void setComponent2(B component2) { this.component2 = component2; } @Override public String toString() { return "<" + component1 + "," + component2 + ">"; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((component1 == null) ? 0 : component1.hashCode()); result = prime * result + ((component2 == null) ? 0 : component2.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; final Pair<?, ?> other = (Pair<?, ?>) obj; if (component1 == null) { if (other.component1 != null) return false; } else if (!component1.equals(other.component1)) return false; if (component2 == null) { if (other.component2 != null) return false; } else if (!component2.equals(other.component2)) return false; return true; } public static <A, B> Pair<A, B> create(A component1, B component2) { return new Pair<A, B>(component1, component2); } } 
added 294 characters in body
Source Link
Jorgesys
  • 126.9k
  • 26
  • 347
  • 276
 public class Pair<A, B> {     private A component1;   private B component2;   public Pair() {   super();   }     public Pair(A component1, B component2) {   this.component1 = component1;   this.component2 = component2;   }   public A fst() {   return component1;   }   public void setComponent1(A component1) {   this.component1 = component1;   }   public B snd() {   return component2;   }   public void setComponent2(B component2) {   this.component2 = component2;   }   @Override   public String toString() {   return "<" + component1 + "," + component2 + ">";   }   @Override   public int hashCode() {   final int prime = 31;   int result = 1;   result = prime * result   + ((component1 == null) ? 0 : component1.hashCode());   result = prime * result   + ((component2 == null) ? 0 : component2.hashCode());   return result;   }   @Override   public boolean equals(Object obj) {   if (this == obj)   return true;   if (obj == null)   return false;   if (getClass() != obj.getClass())   return false;   final Pair<?, ?> other = (Pair<?, ?>) obj;   if (component1 == null) {   if (other.component1 != null)   return false;   } else if (!component1.equals(other.component1))   return false;   if (component2 == null) {   if (other.component2 != null)   return false;   } else if (!component2.equals(other.component2))   return false;   return true;   }   public static <A, B> Pair<A, B> create(A component1, B component2) {   return new Pair<A, B>(component1, component2);   }   } 

}

public class Pair<A, B> { private A component1; private B component2; public Pair() { super(); } public Pair(A component1, B component2) { this.component1 = component1; this.component2 = component2; } public A fst() { return component1; } public void setComponent1(A component1) { this.component1 = component1; } public B snd() { return component2; } public void setComponent2(B component2) { this.component2 = component2; } @Override public String toString() { return "<" + component1 + "," + component2 + ">"; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((component1 == null) ? 0 : component1.hashCode()); result = prime * result + ((component2 == null) ? 0 : component2.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; final Pair<?, ?> other = (Pair<?, ?>) obj; if (component1 == null) { if (other.component1 != null) return false; } else if (!component1.equals(other.component1)) return false; if (component2 == null) { if (other.component2 != null) return false; } else if (!component2.equals(other.component2)) return false; return true; } public static <A, B> Pair<A, B> create(A component1, B component2) { return new Pair<A, B>(component1, component2); } 

}

 public class Pair<A, B> {     private A component1;   private B component2;   public Pair() {   super();   }     public Pair(A component1, B component2) {   this.component1 = component1;   this.component2 = component2;   }   public A fst() {   return component1;   }   public void setComponent1(A component1) {   this.component1 = component1;   }   public B snd() {   return component2;   }   public void setComponent2(B component2) {   this.component2 = component2;   }   @Override   public String toString() {   return "<" + component1 + "," + component2 + ">";   }   @Override   public int hashCode() {   final int prime = 31;   int result = 1;   result = prime * result   + ((component1 == null) ? 0 : component1.hashCode());   result = prime * result   + ((component2 == null) ? 0 : component2.hashCode());   return result;   }   @Override   public boolean equals(Object obj) {   if (this == obj)   return true;   if (obj == null)   return false;   if (getClass() != obj.getClass())   return false;   final Pair<?, ?> other = (Pair<?, ?>) obj;   if (component1 == null) {   if (other.component1 != null)   return false;   } else if (!component1.equals(other.component1))   return false;   if (component2 == null) {   if (other.component2 != null)   return false;   } else if (!component2.equals(other.component2))   return false;   return true;   }   public static <A, B> Pair<A, B> create(A component1, B component2) {   return new Pair<A, B>(component1, component2);   }   } 
Post Undeleted by Nels Beckman
Post Deleted by Nels Beckman
Source Link
Nels Beckman
  • 20.6k
  • 3
  • 28
  • 28

I defined a generic Pair class that I use all the time. It's great. As a bonus, by defining a static factory method (Pair.create) I only have to write the type arguments half as often.

public class Pair<A, B> { private A component1; private B component2; public Pair() { super(); } public Pair(A component1, B component2) { this.component1 = component1; this.component2 = component2; } public A fst() { return component1; } public void setComponent1(A component1) { this.component1 = component1; } public B snd() { return component2; } public void setComponent2(B component2) { this.component2 = component2; } @Override public String toString() { return "<" + component1 + "," + component2 + ">"; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((component1 == null) ? 0 : component1.hashCode()); result = prime * result + ((component2 == null) ? 0 : component2.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; final Pair<?, ?> other = (Pair<?, ?>) obj; if (component1 == null) { if (other.component1 != null) return false; } else if (!component1.equals(other.component1)) return false; if (component2 == null) { if (other.component2 != null) return false; } else if (!component2.equals(other.component2)) return false; return true; } public static <A, B> Pair<A, B> create(A component1, B component2) { return new Pair<A, B>(component1, component2); } 

}