Skip to content

Instantly share code, notes, and snippets.

@vakho10
Created January 17, 2021 09:56
Show Gist options
  • Save vakho10/35d0b0045d81b86dfb87608cc466de64 to your computer and use it in GitHub Desktop.
Save vakho10/35d0b0045d81b86dfb87608cc466de64 to your computer and use it in GitHub Desktop.
Java Pair implementation
public class Pair<F extends Comparable<F>, S extends Comparable<S>> implements Comparable<Pair<F, S>>{
private F first;
private S second;
public Pair() {
}
public Pair(F first, S second) {
this.first = first;
this.second = second;
}
public F getFirst() {
return first;
}
public void setFirst(F first) {
this.first = first;
}
public S getSecond() {
return second;
}
public void setSecond(S second) {
this.second = second;
}
@Override
public int compareTo(Pair<F, S> p) {
int result = this.first.compareTo(p.first);
if (result == 0) {
return this.second.compareTo(p.second);
}
return result;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Pair<?, ?> pair = (Pair<?, ?>) o;
return Objects.equals(first, pair.first) && Objects.equals(second, pair.second);
}
@Override
public int hashCode() {
return Objects.hash(first, second);
}
@Override
public String toString() {
return "Pair{" +
"first=" + first +
", second=" + second +
'}';
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment