Skip to contentMethod: equals(Object)
      1: package util;
2: 
3: import java.util.Objects;
4: 
5: /**
6:  * Ein Paar von zwei Typen.
7:  *
8:  * @param <T>
9:  * @param <V>
10:  */
11: public final class Pair<T, V> {
12:     private final T t;
13:     private final V v;
14: 
15:     private Pair(final T t, final V v) {
16:         this.t = t;
17:         this.v = v;
18:     }
19: 
20:     /**
21:      * Liefert den ersten Wert.
22:      *
23:      * @return Wert 1
24:      */
25:     public T getFirst() {
26:         return this.t;
27:     }
28: 
29:     /**
30:      * Liefert den zweiten Wert.
31:      *
32:      * @return Wert 2
33:      */
34:     public V getSecond() {
35:         return this.v;
36:     }
37: 
38:     /**
39:      * Erstellt ein Paar.
40:      *
41:      * @param t   Wert 1
42:      * @param v   Wert 2
43:      * @param <T> Typ Wert 1
44:      * @param <V> Typ Wert 2
45:      * @return das erstellte Paar.
46:      */
47:     public static <T, V> Pair<T, V> create(final T t, final V v) {
48:         return new Pair<>(t, v);
49:     }
50: 
51:     @Override
52:     public boolean equals(final Object o) {
53:•        if (this == o) {
54:             return true;
55:         }
56:•        if (o == null || this.getClass() != o.getClass()) {
57:             return false;
58:         }
59:         final Pair<?, ?> pair = (Pair<?, ?>) o;
60:•        return Objects.equals(this.t, pair.t)
61:•                && Objects.equals(this.v, pair.v);
62:     }
63: 
64:     @Override
65:     public int hashCode() {
66: 
67:         return Objects.hash(this.t, this.v);
68:     }
69: 
70:     @Override
71:     public String toString() {
72:         return this.v + " <--> " + this.t;
73:     }
74: }